workflow-ai 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README.md +37 -377
- package/configs/pipeline.yaml +113 -4
- package/package.json +54 -44
- package/src/lib/operations/tickets.mjs +305 -207
- package/src/lib/utils.mjs +286 -286
- package/src/runner.mjs +316 -35
- package/src/scripts/check-conditions.js +2 -2
- package/src/scripts/check-relevance.js +3 -1
- package/src/scripts/get-next-id.js +144 -41
- package/src/scripts/mark-blocked.js +160 -0
- package/src/scripts/move-ticket.js +305 -83
- package/src/scripts/pick-next-task.js +782 -93
- package/src/skills/__test-cal-001-1777553217513/SKILL.md +2 -0
- package/src/skills/__test-runner-1777553217483/SKILL.md +5 -0
- package/src/skills/coach/SKILL.md +2 -2
- package/src/skills/execute-task/SKILL.md +1 -1
- package/src/skills/manual-testing/SKILL.md +2 -0
- package/src/skills/review-result/SKILL.md +23 -1
- package/src/scripts/tests/timeout-cascade.test.js +0 -28
- package/src/skills/analyze-report/README.md +0 -44
- package/src/skills/analyze-report/algorithms/progress-assessment.md +0 -108
- package/src/skills/analyze-report/knowledge/analysis-frameworks.md +0 -66
- package/src/skills/analyze-report/knowledge/report-structure.md +0 -61
- package/src/skills/analyze-report/scripts/calc-plan-metrics.js +0 -234
- package/src/skills/analyze-report/templates/analysis-report.md +0 -80
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +0 -98
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +0 -99
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -88
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -100
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +0 -64
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +0 -110
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +0 -74
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +0 -38
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +0 -61
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +0 -60
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +0 -90
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +0 -5
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +0 -84
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +0 -86
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +0 -44
- package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +0 -27
- package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +0 -32
- package/src/skills/analyze-report/tests/index.yaml +0 -25
- package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +0 -22
- package/src/skills/analyze-report/tests/rubrics/result-block-format.md +0 -22
- package/src/skills/analyze-report/workflows/progress.md +0 -158
- package/src/skills/analyze-report/workflows/retrospective.md +0 -143
- package/src/skills/coach/README.md +0 -43
- package/src/skills/coach/SKILL.md.legacy +0 -157
- package/src/skills/coach/algorithms/gap-analysis.md +0 -69
- package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
- package/src/skills/coach/algorithms/skill-scoring.md +0 -80
- package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +0 -11
- package/src/skills/coach/knowledge/backlog-management.md +0 -67
- package/src/skills/coach/knowledge/backlog-management.md.legacy +0 -90
- package/src/skills/coach/knowledge/common-antipatterns.md +0 -76
- package/src/skills/coach/knowledge/prompt-engineering.md +0 -45
- package/src/skills/coach/knowledge/shared-knowledge-guide.md +0 -44
- package/src/skills/coach/knowledge/skill-anatomy.md +0 -49
- package/src/skills/coach/knowledge/test-authorship.md +0 -141
- package/src/skills/coach/templates/audit-report.md +0 -39
- package/src/skills/coach/templates/coach-backlog-init.yaml +0 -14
- package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +0 -10
- package/src/skills/coach/templates/improvement-plan.md +0 -42
- package/src/skills/coach/templates/new-skill.md +0 -95
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +0 -65
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +0 -75
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +0 -81
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +0 -101
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +0 -91
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +0 -55
- package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +0 -53
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +0 -50
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +0 -37
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +0 -23
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +0 -29
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +0 -13
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +0 -19
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +0 -33
- package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +0 -57
- package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +0 -77
- package/src/skills/coach/tests/index.yaml +0 -29
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +0 -13
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +0 -29
- package/src/skills/coach/tests/rubrics/evidence-based.md +0 -26
- package/src/skills/coach/tests/rubrics/root-cause-first.md +0 -21
- package/src/skills/coach/workflows/analyze.md +0 -79
- package/src/skills/coach/workflows/analyze.md.legacy +0 -64
- package/src/skills/coach/workflows/audit.md +0 -74
- package/src/skills/coach/workflows/audit.md.legacy +0 -59
- package/src/skills/coach/workflows/create.md +0 -80
- package/src/skills/coach/workflows/create.md.legacy +0 -67
- package/src/skills/coach/workflows/improve.md +0 -71
- package/src/skills/coach/workflows/improve.md.legacy +0 -60
- package/src/skills/coach/workflows/research.md +0 -55
- package/src/skills/coach/workflows/review.md +0 -52
- package/src/skills/coach/workflows/review.md.legacy +0 -48
- package/src/skills/coach/workflows/test.md +0 -97
- package/src/skills/create-plan/README.md +0 -39
- package/src/skills/create-plan/algorithms/risk-assessment.md +0 -73
- package/src/skills/create-plan/knowledge/plan-completeness.md +0 -67
- package/src/skills/create-plan/knowledge/plan-lifecycle.md +0 -33
- package/src/skills/create-plan/knowledge/task-verification-pairs.md +0 -151
- package/src/skills/create-plan/knowledge/test-hygiene.md +0 -47
- package/src/skills/create-plan/scripts/validate-completeness.js +0 -182
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +0 -39
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +0 -35
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +0 -167
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -10
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +0 -26
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +0 -86
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +0 -119
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +0 -41
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +0 -164
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -3
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -13
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +0 -44
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +0 -49
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +0 -6
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +0 -16
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +0 -116
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +0 -39
- package/src/skills/create-plan/tests/index.yaml +0 -25
- package/src/skills/create-plan/tests/rubrics/task-granularity.md +0 -21
- package/src/skills/create-plan/tests/rubrics/validate-completeness.md +0 -21
- package/src/skills/create-plan/workflows/create.md +0 -136
- package/src/skills/create-report/README.md +0 -40
- package/src/skills/create-report/algorithms/metric-calculation.md +0 -93
- package/src/skills/create-report/knowledge/report-metrics.md +0 -82
- package/src/skills/create-report/scripts/calc-metrics.js +0 -383
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +0 -26
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +0 -28
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +0 -163
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -3
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +0 -8
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +0 -7
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +0 -22
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +0 -13
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +0 -115
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +0 -57
- package/src/skills/create-report/tests/index.yaml +0 -20
- package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +0 -21
- package/src/skills/create-report/workflows/standard.md +0 -175
- package/src/skills/decompose-gaps/README.md +0 -39
- package/src/skills/decompose-gaps/algorithms/scope-check.md +0 -110
- package/src/skills/decompose-gaps/knowledge/scope-validation.md +0 -65
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +0 -56
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +0 -164
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +0 -22
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +0 -29
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +0 -35
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +0 -18
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +0 -116
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +0 -46
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +0 -163
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +0 -21
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +0 -38
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +0 -16
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +0 -10
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +0 -9
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +0 -115
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +0 -36
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +0 -165
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +0 -37
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +0 -45
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +0 -117
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +0 -41
- package/src/skills/decompose-gaps/tests/index.yaml +0 -30
- package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +0 -21
- package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +0 -22
- package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +0 -21
- package/src/skills/decompose-gaps/workflows/decompose.md +0 -123
- package/src/skills/decompose-plan/README.md +0 -43
- package/src/skills/decompose-plan/algorithms/deduplication.md +0 -101
- package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +0 -139
- package/src/skills/decompose-plan/knowledge/capabilities.md +0 -68
- package/src/skills/decompose-plan/knowledge/human-task-rules.md +0 -82
- package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +0 -73
- package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +0 -47
- package/src/skills/decompose-plan/scripts/check-duplicates.js +0 -323
- package/src/skills/decompose-plan/scripts/verify-atomicity.js +0 -408
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -20
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -28
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +0 -137
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +0 -188
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +0 -32
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +0 -110
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +0 -56
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +0 -47
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +0 -43
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -15
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -12
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +0 -34
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +0 -44
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +0 -21
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +0 -38
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +0 -48
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +0 -167
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +0 -62
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +0 -174
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +0 -55
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +0 -104
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +0 -45
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +0 -58
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +0 -193
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +0 -202
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +0 -155
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +0 -52
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +0 -64
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +0 -59
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +0 -204
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +0 -213
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-2.md +0 -57
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +0 -147
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +0 -165
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +0 -133
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +0 -81
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +0 -108
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +0 -3
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +0 -78
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +0 -225
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +0 -66
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +0 -67
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +0 -40
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +0 -122
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +0 -131
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +0 -138
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +0 -41
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +0 -88
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +0 -72
- package/src/skills/decompose-plan/tests/index.yaml +0 -45
- package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +0 -21
- package/src/skills/decompose-plan/workflows/decompose.md +0 -305
- package/src/skills/deep-research/README.md +0 -36
- package/src/skills/deep-research/algorithms/source-scoring.md +0 -63
- package/src/skills/deep-research/algorithms/synthesis.md +0 -67
- package/src/skills/deep-research/knowledge/data-validation.md +0 -44
- package/src/skills/deep-research/knowledge/perplexity-config.md +0 -30
- package/src/skills/deep-research/knowledge/research-methodology.md +0 -54
- package/src/skills/deep-research/knowledge/source-evaluation.md +0 -33
- package/src/skills/deep-research/scripts/perplexity-research.js +0 -315
- package/src/skills/deep-research/templates/brief-summary.md +0 -25
- package/src/skills/deep-research/templates/research-report.md +0 -76
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +0 -48
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +0 -88
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +0 -163
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +0 -58
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +0 -249
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +0 -44
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +0 -96
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +0 -94
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +0 -115
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +0 -58
- package/src/skills/deep-research/tests/index.yaml +0 -20
- package/src/skills/deep-research/tests/rubrics/self-check-url.md +0 -34
- package/src/skills/deep-research/workflows/base-checklist.md +0 -19
- package/src/skills/deep-research/workflows/benchmark.md +0 -38
- package/src/skills/deep-research/workflows/competitor.md +0 -44
- package/src/skills/deep-research/workflows/custom.md +0 -32
- package/src/skills/deep-research/workflows/market.md +0 -44
- package/src/skills/deep-research/workflows/technology.md +0 -40
- package/src/skills/deep-research/workflows/trend.md +0 -40
- package/src/skills/execute-task/README.md +0 -44
- package/src/skills/execute-task/algorithms/execution-strategy.md +0 -136
- package/src/skills/execute-task/knowledge/context-checkpoints.md +0 -75
- package/src/skills/execute-task/knowledge/ticket-structure.md +0 -70
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +0 -48
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +0 -6
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +0 -9
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +0 -26
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +0 -44
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +0 -37
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +0 -18
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +0 -16
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +0 -14
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +0 -1
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +0 -50
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +0 -15
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +0 -39
- package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +0 -41
- package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +0 -40
- package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +0 -42
- package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +0 -41
- package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +0 -40
- package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +0 -36
- package/src/skills/execute-task/tests/index.yaml +0 -39
- package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +0 -22
- package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +0 -20
- package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +0 -21
- package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +0 -23
- package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +0 -22
- package/src/skills/execute-task/workflows/execute.md +0 -104
- package/src/skills/manual-testing/README.md +0 -63
- package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +0 -74
- package/src/skills/manual-testing/algorithms/bug-severity.md +0 -73
- package/src/skills/manual-testing/algorithms/mcp-budget.md +0 -97
- package/src/skills/manual-testing/algorithms/test-prioritization.md +0 -69
- package/src/skills/manual-testing/knowledge/browser-extension-testing.md +0 -102
- package/src/skills/manual-testing/knowledge/browser-tools.md +0 -114
- package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +0 -92
- package/src/skills/manual-testing/knowledge/desktop-tools-core.md +0 -76
- package/src/skills/manual-testing/knowledge/sandbox-advanced.md +0 -83
- package/src/skills/manual-testing/knowledge/sandbox-core.md +0 -67
- package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +0 -69
- package/src/skills/manual-testing/knowledge/test-case-design.md +0 -107
- package/src/skills/manual-testing/knowledge/testing-types.md +0 -45
- package/src/skills/manual-testing/templates/bug-report.md +0 -52
- package/src/skills/manual-testing/templates/test-case.md +0 -34
- package/src/skills/manual-testing/templates/test-plan.md +0 -97
- package/src/skills/manual-testing/templates/test-session-report.md +0 -56
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +0 -34
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +0 -4
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +0 -8
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +0 -38
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +0 -44
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +0 -47
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +0 -24
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +0 -13
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +0 -18
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +0 -21
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +0 -37
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +0 -76
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +0 -71
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +0 -85
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +0 -46
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +0 -36
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +0 -65
- package/src/skills/manual-testing/tests/index.yaml +0 -30
- package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +0 -140
- package/src/skills/manual-testing/tests/last-run-tc002.log +0 -1
- package/src/skills/manual-testing/tests/last-run.log +0 -1469
- package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +0 -31
- package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +0 -20
- package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +0 -21
- package/src/skills/manual-testing/workflows/acceptance.md +0 -80
- package/src/skills/manual-testing/workflows/exploratory.md +0 -84
- package/src/skills/manual-testing/workflows/regression.md +0 -76
- package/src/skills/manual-testing/workflows/smoke.md +0 -109
- package/src/skills/manual-testing/workflows/test-plan.md +0 -75
- package/src/skills/review-result/README.md +0 -59
- package/src/skills/review-result/algorithms/verification.md +0 -112
- package/src/skills/review-result/knowledge/baseline-snapshot-validation.md +0 -67
- package/src/skills/review-result/knowledge/dod-patterns.md +0 -116
- package/src/skills/review-result/knowledge/test-hygiene.md +0 -44
- package/src/skills/review-result/scripts/verify-artifacts.js +0 -497
- package/src/skills/review-result/templates/verdict.md +0 -153
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +0 -164
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +0 -49
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +0 -13
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +0 -116
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +0 -51
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +0 -25
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +0 -32
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +0 -34
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +0 -8
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-1.md +0 -40
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-2.md +0 -15
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-3.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-3.md +0 -11
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-1.md +0 -16
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-2.md +0 -18
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-3.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-1.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-3.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003-test-isolation.yaml +0 -50
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/judge.json +0 -46
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/meta.json +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004-baseline-snapshot.yaml +0 -50
- package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +0 -43
- package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +0 -46
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/QA-904.md +0 -51
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/example-test.mjs +0 -36
- package/src/skills/review-result/tests/fixtures/QA-905-baseline-regex-instead-of-snapshot/QA-905.md +0 -62
- package/src/skills/review-result/tests/fixtures/QA-905-baseline-regex-instead-of-snapshot/baseline.test.mjs +0 -124
- package/src/skills/review-result/tests/index.yaml +0 -35
- package/src/skills/review-result/tests/rubrics/baseline-snapshot.md +0 -20
- package/src/skills/review-result/tests/rubrics/path-line-suffix.md +0 -19
- package/src/skills/review-result/tests/rubrics/test-isolation.md +0 -20
- package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +0 -19
- package/src/skills/review-result/workflows/review.md +0 -209
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# Шаблон: Структура нового скила
|
|
2
|
-
|
|
3
|
-
## SKILL.md
|
|
4
|
-
|
|
5
|
-
```markdown
|
|
6
|
-
---
|
|
7
|
-
name: {skill-name}
|
|
8
|
-
description: >
|
|
9
|
-
{2-3 предложения: кто агент, что делает, в каком контексте}
|
|
10
|
-
ticket_prefix: {PREFIX}
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# {Skill Name} — Agent Skill
|
|
14
|
-
|
|
15
|
-
## Роль
|
|
16
|
-
|
|
17
|
-
{Роль, контекст, ограничения}
|
|
18
|
-
|
|
19
|
-
**Ты делаешь:** {перечисление}
|
|
20
|
-
**Ты НЕ делаешь:** {перечисление → куда направить}
|
|
21
|
-
|
|
22
|
-
## Маршрутизация тикетов {PREFIX}-*
|
|
23
|
-
|
|
24
|
-
| Тип | Триггеры | Воркфлоу |
|
|
25
|
-
|-----|----------|----------|
|
|
26
|
-
| **TYPE1** | «ключевые слова» | → `workflows/type1.md` |
|
|
27
|
-
|
|
28
|
-
## Загрузка знаний
|
|
29
|
-
|
|
30
|
-
| Модуль | Когда загружать |
|
|
31
|
-
|--------|----------------|
|
|
32
|
-
| `knowledge/module.md` | Условие |
|
|
33
|
-
|
|
34
|
-
## Загрузка алгоритмов
|
|
35
|
-
|
|
36
|
-
| Алгоритм | Когда загружать |
|
|
37
|
-
|----------|----------------|
|
|
38
|
-
| `algorithms/algo.md` | Условие |
|
|
39
|
-
|
|
40
|
-
## Шаблоны вывода
|
|
41
|
-
|
|
42
|
-
| Шаблон | Когда использовать |
|
|
43
|
-
|--------|-------------------|
|
|
44
|
-
| `templates/template.md` | Условие |
|
|
45
|
-
|
|
46
|
-
## Принципы
|
|
47
|
-
|
|
48
|
-
1. **Принцип** — описание.
|
|
49
|
-
{3-7 принципов}
|
|
50
|
-
|
|
51
|
-
## Формат вывода
|
|
52
|
-
|
|
53
|
-
- Язык, стиль, конкретность
|
|
54
|
-
|
|
55
|
-
## Границы компетенции
|
|
56
|
-
|
|
57
|
-
- **Зона X** → куда направить
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Workflow файл
|
|
61
|
-
|
|
62
|
-
```markdown
|
|
63
|
-
# Воркфлоу: {TYPE}
|
|
64
|
-
|
|
65
|
-
## Алгоритм
|
|
66
|
-
### 1. {Действие}
|
|
67
|
-
{Пояснение, ссылки на knowledge/algorithms}
|
|
68
|
-
### N. Валидация
|
|
69
|
-
- [ ] Критерий 1
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Knowledge файл
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
# {Модуль знаний}
|
|
76
|
-
|
|
77
|
-
## {Категория}
|
|
78
|
-
| Параметр | Значение | Описание |
|
|
79
|
-
|----------|----------|----------|
|
|
80
|
-
<!-- РАСШИРЕНИЕ: добавляй {что} ниже -->
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Algorithm файл
|
|
84
|
-
|
|
85
|
-
```markdown
|
|
86
|
-
# Алгоритм: {Название}
|
|
87
|
-
## Вход
|
|
88
|
-
{Входные данные}
|
|
89
|
-
## Алгоритм
|
|
90
|
-
### 1. {Шаг}
|
|
91
|
-
## Выход
|
|
92
|
-
{Результат}
|
|
93
|
-
## Пример
|
|
94
|
-
{Конкретный пример}
|
|
95
|
-
```
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
Тест пройден. Relevant case TC-DECOMPOSE-PLAN-004: **passed**.
|
|
2
|
-
|
|
3
|
-
**Verdict: `no_baseline_failures`** (режим no-baseline — история отсутствует, это первый прогон). Все 4 статических assertion прошли.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Итог анализа пайплайна PLAN-003
|
|
8
|
-
|
|
9
|
-
### Findings
|
|
10
|
-
|
|
11
|
-
| # | Приоритет | Проблема | Статус |
|
|
12
|
-
|---|-----------|---------|--------|
|
|
13
|
-
| 1 | CRITICAL | ID-коллизия IMPL-002/IMPL-003: заархивированы из PLAN-002, пересозданы для PLAN-003 | ✅ Fix в пайплайне (`allocate-ticket-ids`) |
|
|
14
|
-
| 2 | CRITICAL | STOP-GATE 9.B нарушен: декомпозитор назначил ID «из головы» при отсутствии `id_ranges_json` | ✅ STOP-GATE уже добавлен в `decompose.md` |
|
|
15
|
-
| 3 | HIGH | `ids_allocated_from` отсутствует в RESULT | ✅ Требование зафиксировано в `decompose.md` |
|
|
16
|
-
| 4 | MEDIUM | STOP-GATE не определял явный формат вывода ошибки — пайплайн не мог отличить infra-ошибку от нормального завершения | **CHG-2026-04-19-001: добавлен `status: infra_error`** |
|
|
17
|
-
|
|
18
|
-
### Ключевой паттерн коллизии
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
16:36:02 auto-correction: IMPL-002 (PLAN-002) → archive/
|
|
22
|
-
16:36:02 auto-correction: IMPL-003 (PLAN-002) → archive/
|
|
23
|
-
[check-plan-decomposition → decompose-plan БЕЗ allocate-ticket-ids]
|
|
24
|
-
16:40:31 decompose-plan создаёт IMPL-002 для PLAN-003 → backlog/
|
|
25
|
-
16:40:31 decompose-plan создаёт IMPL-003 для PLAN-003 → backlog/
|
|
26
|
-
↑ tasks_completed в pick-next-task.js находит старый IMPL-002 в archive/
|
|
27
|
-
и ошибочно считает зависимость QA-001 выполненной
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Правка скила (CHG-2026-04-19-001)
|
|
31
|
-
|
|
32
|
-
**Файл:** `skills/decompose-plan/workflows/decompose.md`, шаг 9.B пункт 3
|
|
33
|
-
|
|
34
|
-
**Добавлен явный формат вывода при срабатывании STOP-GATE:**
|
|
35
|
-
```
|
|
36
|
-
---RESULT---
|
|
37
|
-
status: infra_error
|
|
38
|
-
error: <описание: что отсутствует или некорректно в id_ranges_json>
|
|
39
|
-
---RESULT---
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Тест:** `TC-DECOMPOSE-PLAN-004` — verdict `no_baseline_failures`, relevant case passed.
|
|
43
|
-
|
|
44
|
-
### Рекомендуемый тикет (вне scope коуча)
|
|
45
|
-
|
|
46
|
-
Добавить в `pipeline.yaml` обработчик `infra_error` для стадии `decompose-plan`:
|
|
47
|
-
```yaml
|
|
48
|
-
decompose-plan:
|
|
49
|
-
goto:
|
|
50
|
-
default: check-atomicity-limit
|
|
51
|
-
infra_error: check-conditions # ← добавить
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
**Затронутые файлы:**
|
|
55
|
-
- `D:/Dev/workflowAi/src/skills/decompose-plan/workflows/decompose.md`
|
|
56
|
-
- `D:/Dev/workflowAi/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-stopgate-infra-error-format.yaml` (новый)
|
|
57
|
-
- `D:/Dev/workflowAi/src/skills/decompose-plan/tests/index.yaml`
|
|
58
|
-
- `.workflow/coach-backlog.yaml`
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
## Итоговый отчёт findings
|
|
4
|
-
|
|
5
|
-
### Временны́е диаграммы повторяющихся ID
|
|
6
|
-
|
|
7
|
-
**IMPL-002** (коллизия):
|
|
8
|
-
```
|
|
9
|
-
16:36:02 ARCHIVE tickets/done/IMPL-002.md → tickets/archive/IMPL-002.md
|
|
10
|
-
(pick-next-task auto-correction: PLAN-002 archived)
|
|
11
|
-
16:40:31 CREATE tickets/backlog/IMPL-002.md
|
|
12
|
-
(decompose-plan: "Конфиг tickets/**: protected_files + trusted_stages")
|
|
13
|
-
⚠️ КОЛЛИЗИЯ: tickets/archive/IMPL-002.md и tickets/backlog/IMPL-002.md
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
**IMPL-003** (коллизия):
|
|
17
|
-
```
|
|
18
|
-
16:36:02 ARCHIVE tickets/done/IMPL-003.md → tickets/archive/IMPL-003.md
|
|
19
|
-
(pick-next-task auto-correction: PLAN-002 archived)
|
|
20
|
-
16:40:31 CREATE tickets/backlog/IMPL-003.md
|
|
21
|
-
(decompose-plan: "Дедупликация в pick-next-task")
|
|
22
|
-
⚠️ КОЛЛИЗИЯ: tickets/archive/IMPL-003.md и tickets/backlog/IMPL-003.md
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
### Findings (приоритизированы)
|
|
28
|
-
|
|
29
|
-
| # | Приоритет | Finding |
|
|
30
|
-
|---|-----------|---------|
|
|
31
|
-
| F1 | CRITICAL | **ID коллизия.** IMPL-002 и IMPL-003 существуют одновременно в `archive/` и `backlog/`. Нарушена ссылочная целостность: `check-conditions` считает тикет "завершённым" (archive), пока новый тикет с тем же ID активен в backlog. |
|
|
32
|
-
| F2 | CRITICAL | **Отсутствие `allocate-ticket-ids` в пайплайне PLAN-003.** GOTO: `check-plan-decomposition → decompose-plan` напрямую, без выделения `id_ranges_json`. Агент-декомпозитор запущен без источника нумерации. |
|
|
33
|
-
| F3 | CRITICAL | **Нарушение stop-gate.** Старая версия `decompose-plan` не остановилась при отсутствии `id_ranges_json`; применила fallback (нумерация с 001). Признак: `ids_allocated_from` отсутствует в `---RESULT---`. |
|
|
34
|
-
| F4 | HIGH | **`decompose-gaps` использует агент-driven ID-генерацию без hard stop-gate** — тот же класс риска. Инструкция «найди все файлы... прибавь 1» без ⛔-нотации могла быть проигнорирована fallback-агентом так же, как в PLAN-003. |
|
|
35
|
-
|
|
36
|
-
**Root cause chain:**
|
|
37
|
-
```
|
|
38
|
-
Нет allocate-ticket-ids в пайплайне → id_ranges_json = absent
|
|
39
|
-
→ Агент применил fallback (нумерация с 001)
|
|
40
|
-
→ Пост-валидация уникальности не выполнена
|
|
41
|
-
→ ID IMPL-002, IMPL-003 коллизируют с archive/
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
### Статус исправлений
|
|
47
|
-
|
|
48
|
-
| Компонент | Статус |
|
|
49
|
-
|-----------|--------|
|
|
50
|
-
| `pipeline.yaml`: стадия `allocate-ticket-ids` | ✅ Уже существует (добавлена по итогам инцидента) |
|
|
51
|
-
| `decompose-plan/workflows/decompose.md`: stop-gate 9.B | ✅ Уже существует + CHG-2026-04-19-001/002 применены ранее |
|
|
52
|
-
| `decompose-gaps/workflows/decompose.md`: СТОП-ГЕЙТ | ✅ **CHG-2026-04-19-003 применён в этой сессии** |
|
|
53
|
-
|
|
54
|
-
### Применённое изменение (CHG-2026-04-19-003)
|
|
55
|
-
|
|
56
|
-
**Файл:** `D:\Dev\workflowAi\src\skills\decompose-gaps\workflows\decompose.md`
|
|
57
|
-
|
|
58
|
-
**Изменения:**
|
|
59
|
-
1. Шаг 9 — определение следующего ID: заменена формулировка «найди все файлы... во всех папках» на явный Glob-вызов с подчёркиванием `archive/` и `done/`; добавлено `⛔ Не угадывай номер`
|
|
60
|
-
2. Шаг 9 — добавлен блок `⛔ СТОП-ГЕЙТ: проверка уникальности ID` с антипаттерном
|
|
61
|
-
3. Чеклист завершения — добавлен пункт: `Для каждого созданного тикета выполнен СТОП-ГЕЙТ проверки уникальности ID`
|
|
62
|
-
|
|
63
|
-
### Тест
|
|
64
|
-
|
|
65
|
-
Воркфлоу `workflows/test.md` имеет статус **DRAFT (не активирован)**. Существующий тест `TC-DECOMPOSE-GAPS-002` уже покрывает glob-before-write поведение (проверяет обнаружение файла в `ready/`). Изменение усиливает инструкцию, не меняя требуемое поведение — регрессии не ожидается.
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
Тест прошёл. Финальный вывод:
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Результат анализа
|
|
6
|
-
|
|
7
|
-
### Временны́е диаграммы — ID с коллизиями
|
|
8
|
-
|
|
9
|
-
**IMPL-002:**
|
|
10
|
-
| 16:36:02 | done → archive (PLAN-002 archived) | pick-next-task auto-correction |
|
|
11
|
-
| 16:40:31 | **CREATED NEW** для PLAN-003 | decompose-plan |
|
|
12
|
-
→ **Коллизия**: два разных тикета с одним ID в разных планах.
|
|
13
|
-
|
|
14
|
-
**IMPL-003:**
|
|
15
|
-
| 16:36:02 | done → archive (PLAN-002 archived) | pick-next-task auto-correction |
|
|
16
|
-
| 16:40:31 | **CREATED NEW** для PLAN-003 | decompose-plan |
|
|
17
|
-
→ **Коллизия**.
|
|
18
|
-
|
|
19
|
-
**Ключевое доказательство из лога:** контекст, переданный в `decompose-plan` на шаге 4, содержал только `plan_id` и `plan_file`. `id_ranges_json` — отсутствует. Стадии `allocate-ticket-ids` в пайплайне на тот момент не было.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
### Findings
|
|
24
|
-
|
|
25
|
-
| # | Severity | Описание | Статус |
|
|
26
|
-
|---|----------|---------|--------|
|
|
27
|
-
| F1 | CRITICAL | Стадия `allocate-ticket-ids` отсутствовала → `decompose-plan` не получил `id_ranges_json` → нумерация с 001 → коллизия с архивными IMPL-002, IMPL-003 | **Уже исправлено** (pipeline.yaml + шаг 9.B decompose.md) |
|
|
28
|
-
| F2 | CRITICAL | Агент не остановился при отсутствии `id_ranges_json` (нарушение шаг 9.B) + output без `ids_allocated_from` | **Уже исправлено** (стоп-гейт 9.B, инцидент 2026-04-08/PLAN-008) |
|
|
29
|
-
| F3 | HIGH | **TC-DECOMPOSE-PLAN-002 инвертирован:** assertion `output_contains_all:["get-next-id"]` проваливал правильно работающего агента | **ИСПРАВЛЕНО CHG-079** |
|
|
30
|
-
| F4 | MEDIUM | `verify-atomicity.js` не проверяет наличие `ids_allocated_from` в выводе декомпозитора — нет машинного гейта | Зафиксировано, инфраструктура |
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
### CHG-079: правка TC-DECOMPOSE-PLAN-002
|
|
35
|
-
|
|
36
|
-
**Проблема:** тест тестировал старый контракт (агент *должен* вызывать `get-next-id.js`), тогда как с момента введения `allocate-ticket-ids` стадии контракт противоположен (агент *не должен* вызывать скрипт — получает готовые диапазоны через `id_ranges_json`).
|
|
37
|
-
|
|
38
|
-
**Изменения:**
|
|
39
|
-
- Заменён `output_contains_all: ["get-next-id"]` → `output_contains_all: ["ids_allocated_from"]`
|
|
40
|
-
- Заменены static assertions: проверяют `id_ranges_json`, `не вызывает.*get-next-id`, `ids_allocated_from`
|
|
41
|
-
- Добавлен `output_does_not_contain` на прямой вызов скрипта
|
|
42
|
-
- Обновлён сценарий: теперь предоставляет `id_ranges_json` на входе + минимальный план
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
### Verdict теста
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
status: passed
|
|
50
|
-
skill: decompose-plan
|
|
51
|
-
total: 1
|
|
52
|
-
current_run.passed: 1
|
|
53
|
-
verdict: no_baseline_failures
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**Затронутые файлы:**
|
|
57
|
-
- `src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml`
|
|
58
|
-
- `src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json`
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"per_model": {
|
|
3
|
-
"claude-sonnet": {
|
|
4
|
-
"pass_count": 3,
|
|
5
|
-
"total": 3,
|
|
6
|
-
"trials": [
|
|
7
|
-
{
|
|
8
|
-
"trial": 1,
|
|
9
|
-
"score": 5,
|
|
10
|
-
"passed": true
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"trial": 2,
|
|
14
|
-
"score": 5,
|
|
15
|
-
"passed": true
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"trial": 3,
|
|
19
|
-
"score": 5,
|
|
20
|
-
"passed": true
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"kilo-deepseek": {
|
|
25
|
-
"pass_count": 2,
|
|
26
|
-
"total": 3,
|
|
27
|
-
"trials": [
|
|
28
|
-
{
|
|
29
|
-
"trial": 1,
|
|
30
|
-
"score": 5,
|
|
31
|
-
"passed": true
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"trial": 2,
|
|
35
|
-
"score": 1,
|
|
36
|
-
"passed": false
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"trial": 3,
|
|
40
|
-
"score": 5,
|
|
41
|
-
"passed": true
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
"kilo-minimax": {
|
|
46
|
-
"pass_count": 2,
|
|
47
|
-
"total": 3,
|
|
48
|
-
"trials": [
|
|
49
|
-
{
|
|
50
|
-
"trial": 1,
|
|
51
|
-
"score": 3,
|
|
52
|
-
"passed": false
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"trial": 2,
|
|
56
|
-
"score": 5,
|
|
57
|
-
"passed": true
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"trial": 3,
|
|
61
|
-
"score": 5,
|
|
62
|
-
"passed": true
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
"kilo-glm": {
|
|
67
|
-
"pass_count": 3,
|
|
68
|
-
"total": 3,
|
|
69
|
-
"trials": [
|
|
70
|
-
{
|
|
71
|
-
"trial": 1,
|
|
72
|
-
"score": 5,
|
|
73
|
-
"passed": true
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"trial": 2,
|
|
77
|
-
"score": 5,
|
|
78
|
-
"passed": true
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"trial": 3,
|
|
82
|
-
"score": 5,
|
|
83
|
-
"passed": true
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"rubric_scores": [
|
|
89
|
-
{
|
|
90
|
-
"agentId": "claude-sonnet",
|
|
91
|
-
"trial": 1,
|
|
92
|
-
"score": 5
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"agentId": "claude-sonnet",
|
|
96
|
-
"trial": 2,
|
|
97
|
-
"score": 5
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"agentId": "claude-sonnet",
|
|
101
|
-
"trial": 3,
|
|
102
|
-
"score": 5
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"agentId": "kilo-deepseek",
|
|
106
|
-
"trial": 1,
|
|
107
|
-
"score": 5
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"agentId": "kilo-deepseek",
|
|
111
|
-
"trial": 2,
|
|
112
|
-
"score": 1
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"agentId": "kilo-deepseek",
|
|
116
|
-
"trial": 3,
|
|
117
|
-
"score": 5
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"agentId": "kilo-glm",
|
|
121
|
-
"trial": 1,
|
|
122
|
-
"score": 5
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"agentId": "kilo-glm",
|
|
126
|
-
"trial": 2,
|
|
127
|
-
"score": 5
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"agentId": "kilo-glm",
|
|
131
|
-
"trial": 3,
|
|
132
|
-
"score": 5
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"agentId": "kilo-minimax",
|
|
136
|
-
"trial": 1,
|
|
137
|
-
"score": 3
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"agentId": "kilo-minimax",
|
|
141
|
-
"trial": 2,
|
|
142
|
-
"score": 5
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
"agentId": "kilo-minimax",
|
|
146
|
-
"trial": 3,
|
|
147
|
-
"score": 5
|
|
148
|
-
}
|
|
149
|
-
],
|
|
150
|
-
"timestamp": "2026-04-19T12:18:41.555Z"
|
|
151
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
**Findings по анализу пайплайна (лог от 2026-04-06)**
|
|
2
|
-
|
|
3
|
-
### Временные диаграммы ID артефактов
|
|
4
|
-
|
|
5
|
-
| ID | События (время) | Контекст |
|
|
6
|
-
|--------------|------------------------------------------------------------------------------------------------|----------------------------------|
|
|
7
|
-
| **PLAN-003** | 16:36:02 – выбран как `plan_id` → 16:36:12 – `plan_file` определён → 16:36:18 – декомпозиция | текущий план |
|
|
8
|
-
| **PLAN-002** | 16:36:02 – упомянут как архивный план (архивация тикетов) | архивный план |
|
|
9
|
-
| **COACH-010…015** | 16:36:02 – `done → archive` (план PLAN-002 архивирован) | тикеты коуча |
|
|
10
|
-
| **IMPL-002…008** | 16:36:02 – `done → archive` (план PLAN-002 архивирован) | тикеты реализации |
|
|
11
|
-
| **IMPL-001** | 16:40:31 – создан декомпозитором PLAN-003 | новый тикет |
|
|
12
|
-
| **IMPL-003** | 16:36:02 – архивирован (из PLAN-002) → 16:40:31 – создан заново (в PLAN-003) | коллизия ID |
|
|
13
|
-
| **IMPL-002** | 16:36:02 – архивирован (из PLAN-002) → 16:40:31 – создан заново (в PLAN-003) | коллизия ID |
|
|
14
|
-
| **QA-001, QA-002** | 16:40:31 – созданы декомпозитором | новые тикеты QA |
|
|
15
|
-
|
|
16
|
-
### Выявленные проблемы
|
|
17
|
-
|
|
18
|
-
#### 1. **Неопределённый скил для stages скриптов** (HIGH)
|
|
19
|
-
- **Где:** stage `pick-first-task` (agent=`script-pick`), stage `check-conditions` (agent=`script-check-conditions`).
|
|
20
|
-
- **Симптом:** в логе указано `skill="undefined"`.
|
|
21
|
-
- **Риск:** отсутствие стандартизованных инструкций для этих этапов, возможные отклонения от принципов workflow.
|
|
22
|
-
- **Root cause:** конфигурация пайплайна не связывает агента со скилом.
|
|
23
|
-
- **Рекомендация:** создать или назначить скилы для скриптовых агентов, обеспечить загрузку инструкций.
|
|
24
|
-
|
|
25
|
-
#### 2. **Повторное использование ID тикетов между планами** (MEDIUM)
|
|
26
|
-
- **Примеры:** IMPL-002, IMPL-003 (архивированы из PLAN-002, созданы заново в PLAN-003).
|
|
27
|
-
- **Потенциальные проблемы:** семантическая путаница при ссылках на тикет; риск перезаписи файлов, если файловая структура не разделяет архив и бэклог.
|
|
28
|
-
- **Root cause:** скил `decompose-plan` не проверяет глобальную уникальность ID.
|
|
29
|
-
- **Рекомендация:** добавить проверку существования ID тикета (включая архив) перед созданием; при конфликте генерировать новый ID.
|
|
30
|
-
|
|
31
|
-
#### 3. **Отсутствие проверки уникальности ID при создании тикетов** (LOW)
|
|
32
|
-
- **Частный случай проблемы 2.** Акцент на процедуру декомпозиции.
|
|
33
|
-
- **Root cause:** алгоритм генерации ID, возможно, использует локальный счётчик.
|
|
34
|
-
- **Рекомендация:** использовать универсальный уникальный идентификатор (например, UUID) или комбинацию `plan_id` + инкремент.
|
|
35
|
-
|
|
36
|
-
#### 4. **Неполный лог пайплайна** (INFO)
|
|
37
|
-
- **Симптом:** лог обрывается на stage `check-conditions`, не показывает результат.
|
|
38
|
-
- **Не ошибка, но затрудняет анализ завершённости.**
|
|
39
|
-
- **Рекомендация:** убедиться, что пайплайн завершается корректно; при анализе запрашивать полный лог.
|
|
40
|
-
|
|
41
|
-
### Действия выполнены
|
|
42
|
-
- Построены временные диаграммы для каждого ID артефакта.
|
|
43
|
-
- Выявлены коллизии ID и потенциальные риски.
|
|
44
|
-
- Обновлён бэклог коуча (добавлен `PLAN-003` в `analyzed_plans`, обновлено `last_updated`).
|
|
45
|
-
|
|
46
|
-
**Следующие шаги:** правка скилов `decompose-plan` и конфигурации пайплайна в соответствии с рекомендациями.
|
|
File without changes
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
## Анализ pipeline_log PLAN-003
|
|
2
|
-
|
|
3
|
-
### 1. Временные диаграммы событий по ID артефактов
|
|
4
|
-
|
|
5
|
-
**PLAN-003**
|
|
6
|
-
- `2026-04-06 16:36:02` — план определён как вход пайплайна
|
|
7
|
-
- `2026-04-06 16:36:12` — загружен файл `plans/current/PLAN-003.md`
|
|
8
|
-
- `2026-04-06 16:36:18` — запущена стадия `decompose-plan`
|
|
9
|
-
- `2026-04-06 16:40:31` — декомпозиция завершена, создано 5 тикетов
|
|
10
|
-
|
|
11
|
-
**PLAN-002** (архивный)
|
|
12
|
-
- `2026-04-06 16:36:02` — скрипт `pick-next-task` архивирует 13 тикетов, принадлежащих PLAN-002
|
|
13
|
-
|
|
14
|
-
**Тикеты с коллизией ID**
|
|
15
|
-
- `IMPL-002`
|
|
16
|
-
- `2026-04-06 16:36:02` — архив (состояние `done → archive`, план PLAN-002 архивен)
|
|
17
|
-
- `2026-04-06 16:40:31` — создан заново декомпозитором PLAN-003 (приоритет 2, зависимость от IMPL-001)
|
|
18
|
-
- `IMPL-003`
|
|
19
|
-
- `2026-04-06 16:36:02` — архив
|
|
20
|
-
- `2026-04-06 16:40:31` — создан заново (приоритет 1, critical)
|
|
21
|
-
|
|
22
|
-
**Остальные архивные тикеты PLAN-002** (COACH-010…015, IMPL-004…008) — только событие архивации.
|
|
23
|
-
|
|
24
|
-
**Новые тикеты PLAN-003** (IMPL-001, QA-001, QA-002) — только создание.
|
|
25
|
-
|
|
26
|
-
### 2. Findings (коллизии и противоречия)
|
|
27
|
-
|
|
28
|
-
| Уровень | Описание | ID затронутых артефактов |
|
|
29
|
-
|---------|----------|--------------------------|
|
|
30
|
-
| **CRITICAL** | Дублирование ID тикетов между архивными и вновь созданными | IMPL‑002, IMPL‑003 |
|
|
31
|
-
| **HIGH** | Декомпозитор создал тикеты без проверки уникальности ID во всех папках `tickets/` (включая `archive/`) | IMPL‑002, IMPL‑003 |
|
|
32
|
-
| **MEDIUM** | Отсутствие в логе стадии `allocate-ticket-ids` и параметра `id_ranges_json` на входе `decompose-plan` | PLAN‑003 |
|
|
33
|
-
| **LOW** | Параллельное существование архивных тикетов PLAN‑002 и новых тикетов PLAN‑003 с одинаковыми префиксами | все IMPL‑, COACH‑ |
|
|
34
|
-
|
|
35
|
-
### 3. Root Cause Analysis
|
|
36
|
-
|
|
37
|
-
**Физический автор ошибки:** скил `decompose-plan` (агент `claude-sonnet` на стадии `decompose-plan`).
|
|
38
|
-
|
|
39
|
-
**Цепочка причин:**
|
|
40
|
-
1. **Пропуск STOP‑GATE 9.B** в `workflows/decompose.md` — декомпозитор не получил параметр `id_ranges_json` (в логе контекст стадии содержит только `plan_id` и `plan_file`), но продолжил работу вместо остановки с `status: error`.
|
|
41
|
-
2. **Нарушение принципа дедупликации** — алгоритм `algorithms/deduplication.md` проверяет title/scope, но **не проверяет уникальность ID**; сканирование всех папок `tickets/` (включая `archive/`) должно было обнаружить существующие файлы `IMPL‑002.md` и `IMPL‑003.md`, но этого не произошло.
|
|
42
|
-
3. **Отсутствие пре‑валидации ID** перед записью файла — пост‑валидация (шаг 9.1, п.5) выполняется после сохранения, когда коллизия уже возникла.
|
|
43
|
-
|
|
44
|
-
**Семантический владелец:** скил `decompose-plan` полностью отвечает за генерацию уникальных ID тикетов. Инфраструктурная стадия `allocate-ticket-ids` (если она существует) не выполнилась или не передала диапазоны, что не освобождает декомпозитор от обязанности остановиться при отсутствии входного параметра.
|
|
45
|
-
|
|
46
|
-
### 4. Рекомендуемые правки скила `decompose-plan`
|
|
47
|
-
|
|
48
|
-
**Правка 1 (STOP‑GATE 9.B)** — усилить проверку наличия `id_ranges_json`:
|
|
49
|
-
- Добавить явную проверку в начале шага 9.B: «Если параметр отсутствует или пуст — немедленно остановиться, вывести `status: error`».
|
|
50
|
-
- Запретить любую fallback‑нумерацию (включая «начать с 001»).
|
|
51
|
-
|
|
52
|
-
**Правка 2 (пре‑валидация ID)** — добавить шаг 2.5 в раздел 9.1:
|
|
53
|
-
- Перед сохранением файла выполнить `Glob` по `.workflow/tickets/**/{TYPE}-{NNN}.md`.
|
|
54
|
-
- При обнаружении любого совпадения (включая `archive/`) — остановиться, сообщить об инфраструктурной ошибке.
|
|
55
|
-
|
|
56
|
-
**Правка 3 (дедупликация)** — дополнить `algorithms/deduplication.md` шагом 0:
|
|
57
|
-
- Если ID уже известен (после 9.B) — проверить уникальность через `Glob`; при коллизии — остановить дедупликацию.
|
|
58
|
-
|
|
59
|
-
**Универсальность правок:** все формулировки используют только универсальные термины (`PREFIX`, `NNN`, `tickets/`, `archive/`) без хардкода проектных префиксов или путей.
|
|
60
|
-
|
|
61
|
-
### 5. Выполненные действия коуча
|
|
62
|
-
|
|
63
|
-
1. **Обновлён бэклог** `.workflow/coach-backlog.yaml`:
|
|
64
|
-
- Добавлены `analyzed_tickets`: IMPL‑002, IMPL‑003, COACH‑010…015, IMPL‑004…008.
|
|
65
|
-
- Записана новая правка `CHG-2026-04-19-002` в аудит скила `decompose-plan` (усиление STOP‑GATE 9.B и пре‑валидация ID).
|
|
66
|
-
2. **Проверка эскалаций** — в бэклоге отсутствуют эскалации по данной корневой проблеме.
|
|
67
|
-
|
|
68
|
-
**⚠️ Ограничение доступа:** правки в файлы скила (`workflows/decompose.md`, `algorithms/deduplication.md`) не удалось применить физически из‑за ограничений записи в симлинкованную директорию `/d/Dev/workflowAi/src/skills/`. Рекомендуемые изменения описаны в п.4 и зафиксированы в бэклоге.
|
|
69
|
-
|
|
70
|
-
### 6. Рекомендации стейкхолдеру
|
|
71
|
-
|
|
72
|
-
1. **Применить правки** из п.4 в скиле `decompose-plan`.
|
|
73
|
-
2. **Запустить регрессионный тест** скила после правок (воркфлоу `workflows/test.md`).
|
|
74
|
-
3. **Проверить работу стадии `allocate-ticket-ids`** — она должна выполняться перед `decompose-plan` и передавать `id_ranges_json`.
|
|
75
|
-
4. **Рассмотреть переименование** коллизионных тикетов `IMPL‑002` и `IMPL‑003` (архивных или новых) для восстановления уникальности ID.
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
## Анализ пайплайна PLAN-003
|
|
2
|
-
|
|
3
|
-
### Временные диаграммы по артефактам с повторными упоминаниями
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
#### IMPL-002 — **КОЛЛИЗИЯ ID** (CRITICAL)
|
|
8
|
-
|
|
9
|
-
| Время | Событие | Контекст |
|
|
10
|
-
|-------|---------|----------|
|
|
11
|
-
| 16:36:02 | `[ARCHIVE] IMPL-002: done → archive (plan PLAN-002 is archived)` | Старый IMPL-002 из PLAN-002 архивирован |
|
|
12
|
-
| 16:40:31 | `IMPL-002 — Конфиг tickets/: protected_files + trusted_stages` | **Новый** IMPL-002 создан декомпозитором для PLAN-003 |
|
|
13
|
-
|
|
14
|
-
**Два разных тикета с одним ID в одной системе.** При grep логов, поиске в бэклоге, cross-reference — неоднозначность.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
#### IMPL-003 — **КОЛЛИЗИЯ ID** (CRITICAL)
|
|
19
|
-
|
|
20
|
-
| Время | Событие | Контекст |
|
|
21
|
-
|-------|---------|----------|
|
|
22
|
-
| 16:36:02 | `[ARCHIVE] IMPL-003: done → archive (plan PLAN-002 is archived)` | Старый IMPL-003 из PLAN-002 архивирован |
|
|
23
|
-
| 16:40:31 | `IMPL-003 — Дедупликация в pick-next-task` | **Новый** IMPL-003 создан декомпозитором для PLAN-003 |
|
|
24
|
-
|
|
25
|
-
Та же проблема. Оба ID были освобождены архивацией за секунды до создания новых тикетов с теми же номерами.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
#### IMPL-001 — пробел в нумерации PLAN-002
|
|
30
|
-
|
|
31
|
-
| Время | Событие | Контекст |
|
|
32
|
-
|-------|---------|----------|
|
|
33
|
-
| 16:36:02 | Архивация PLAN-002: IMPL-002..008, **без IMPL-001** | Либо IMPL-001 был архивирован ранее, либо никогда не существовал |
|
|
34
|
-
| 16:40:31 | `IMPL-001 — FileGuard: режим protect_structure` | Создан как новый для PLAN-003 |
|
|
35
|
-
|
|
36
|
-
Если IMPL-001 существовал в PLAN-002 и был удалён/архивирован ранее без записи в этом логе — потенциальная третья коллизия. Если не существовал — дыра в нумерации PLAN-002 (IMPL-002..008 без IMPL-001).
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
#### PLAN-003 — полный цикл
|
|
41
|
-
|
|
42
|
-
| Время | Событие |
|
|
43
|
-
|-------|---------|
|
|
44
|
-
| 16:36:02 | PipelineRunner стартует, `plan_id: PLAN-003` |
|
|
45
|
-
| 16:36:02 | `pick-next-task` → авто-коррекция: архивация 13 тикетов PLAN-002 |
|
|
46
|
-
| 16:36:12 | Context обновлён: `plan_file: plans/current/PLAN-003.md` |
|
|
47
|
-
| 16:36:18 | `decompose-plan` старт (agent: claude-sonnet) |
|
|
48
|
-
| 16:40:31 | Декомпозиция завершена, `status: default`, 5 тикетов создано |
|
|
49
|
-
| 16:40:36 | `check-conditions` старт |
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
#### COACH-010..015, IMPL-004..008 — без коллизий
|
|
54
|
-
|
|
55
|
-
Архивированы 16:36:02, не переиспользованы в PLAN-003.
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
### Findings
|
|
60
|
-
|
|
61
|
-
| # | Severity | Finding | Root Cause |
|
|
62
|
-
|---|----------|---------|------------|
|
|
63
|
-
| F-1 | **CRITICAL** | Коллизия ID: IMPL-002 и IMPL-003 существуют дважды (архив PLAN-002 + новые PLAN-003) | Генератор ID тикетов (`decompose-plan` или underlying script) не проверяет archived-тикетов при назначении номеров |
|
|
64
|
-
| F-2 | **HIGH** | `status: default` вместо явного статуса завершения декомпозиции | Скил `decompose-plan` не устанавливает `status: success` / `decomposed` в RESULT |
|
|
65
|
-
| F-3 | **MEDIUM** | Пробел в нумерации PLAN-002: IMPL-002..008 без IMPL-001 | Неизвестно — либо ранний архив без логирования, либо дефект нумерации при создании |
|
|
66
|
-
|
|
67
|
-
### Root Cause Analysis
|
|
68
|
-
|
|
69
|
-
**F-1 (Коллизия ID):** Физический автор новых тикетов — скил `decompose-plan`. Скрипт `pick-next-task.js` на шаге auto-correction архивировал тикеты PLAN-002 **до** запуска декомпозиции, но генератор ID внутри `decompose-plan` не имеет доступа к архивным тикетам или использует счётчик, сбрасываемый по активным тикетам. **Усиление нужно в скиле `decompose-plan`** (проверка на уникальность ID против всех состояний, включая archive), либо в инфраструктурном слое (глобальный счётчик / последовательность, не зависящая от статуса тикета).
|
|
70
|
-
|
|
71
|
-
**F-2 (status: default):** Декомпозиция завершилась корректно (5 тикетов созданы, выходной формат правильный), но результирующий статус неинформативен. Downstream стадии (`check-conditions`) не могут надёжно определить, была ли декомпозиция успешной или произошёл fallback.
|
|
72
|
-
|
|
73
|
-
### Рекомендации
|
|
74
|
-
|
|
75
|
-
1. **F-1:** Внести в `decompose-plan` обязательную проверку: ID нового тикета не должен совпадать ни с одним существующим ID в любом статусе (включая archive). Альтернативно — добавить префикс плана: `PLAN-003-IMPL-001`. Если генерация ID происходит в скрипте — добавить `grep` по `coach-backlog.yaml` и директории `tickets/` (включая archive) перед назначением номера.
|
|
76
|
-
2. **F-2:** Добавить в `decompose-plan` явную установку `status: success` при корректном завершении декомпозиции.
|
|
77
|
-
3. **F-3:** Проверить историю PLAN-002 на предмет IMPL-001 — существовал ли он и когда был архивирован.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
**Ограничение:** в рабочей директории отсутствуют скилы для правки (`.workflow/src/skills/` пуст). Для полноценной работы коуча (правка скила + запись в бэклог) необходим доступ к скилу `decompose-plan` и скрипту генерации ID тикетов.
|