100 lines
2.5 KiB
YAML
100 lines
2.5 KiB
YAML
# Triage scoring weights and thresholds
|
|
# Used by: triage_score.py, deep_triage.sh
|
|
|
|
version: "1.0.0"
|
|
|
|
# Scoring thresholds
|
|
thresholds:
|
|
ready: 5 # Minimum score to be considered "ready" for work
|
|
excellent: 8 # Score indicating well-scoped, actionable issue
|
|
|
|
# Scope scoring (0-3)
|
|
scope:
|
|
file_patterns:
|
|
- pattern: '(?:src/|tests/|scripts/|\.py|\.html|\.js|\.yaml|\.toml|\.sh)'
|
|
weight: 1
|
|
description: "Mentions specific files"
|
|
function_patterns:
|
|
- pattern: '(?:def |class |function |method |`\w+\(\)`)'
|
|
weight: 1
|
|
description: "Mentions specific functions/classes"
|
|
title_length:
|
|
max_chars: 80
|
|
weight: 1
|
|
description: "Short, focused title"
|
|
meta_penalty: -2 # Penalty for philosophy/meta issues
|
|
|
|
# Acceptance criteria scoring (0-3)
|
|
acceptance:
|
|
language_patterns:
|
|
- pattern: '(?:should|must|expect|verify|assert|test.?case|acceptance|criteria|pass(?:es|ing)|fail(?:s|ing)|return(?:s)?|raise(?:s)?)'
|
|
weight: 2
|
|
min_matches: 3
|
|
description: "Has acceptance-related language"
|
|
test_patterns:
|
|
- pattern: '(?:tox|pytest|test_\w+|\.test\.|assert\s)'
|
|
weight: 1
|
|
description: "Mentions specific tests"
|
|
structure_patterns:
|
|
- pattern: '##\s*(problem|solution|expected|actual|steps)'
|
|
weight: 1
|
|
description: "Has structured sections"
|
|
|
|
# Alignment scoring (0-3)
|
|
alignment:
|
|
bug_tags:
|
|
- bug
|
|
- broken
|
|
- crash
|
|
- error
|
|
- fix
|
|
- regression
|
|
- hotfix
|
|
bug_score: 3 # Bugs on main = highest priority
|
|
|
|
refactor_tags:
|
|
- refactor
|
|
- cleanup
|
|
- tech-debt
|
|
- optimization
|
|
- perf
|
|
refactor_score: 2
|
|
|
|
feature_tags:
|
|
- feature
|
|
- feat
|
|
- enhancement
|
|
- capability
|
|
- timmy-capability
|
|
feature_score: 2
|
|
|
|
loop_generated_bonus: 1 # Boost for loop-generated issues
|
|
|
|
meta_tags:
|
|
- philosophy
|
|
- soul-gap
|
|
- discussion
|
|
- question
|
|
- rfc
|
|
meta_score: 0 # Philosophy issues are valid but lowest priority
|
|
|
|
# Quarantine rules
|
|
quarantine:
|
|
failure_threshold: 2 # Failures before quarantine
|
|
lookback_cycles: 20 # How many cycles to look back
|
|
|
|
# Issue type classification
|
|
types:
|
|
bug:
|
|
tags: [bug, broken, crash, error, fix, regression, hotfix]
|
|
priority_bonus: 0 # Handled by alignment scoring
|
|
feature:
|
|
tags: [feature, feat, enhancement, capability, timmy-capability]
|
|
refactor:
|
|
tags: [refactor, cleanup, tech-debt, optimization, perf]
|
|
philosophy:
|
|
tags: [philosophy, soul-gap, discussion, question, rfc]
|
|
dev_actionable: false
|
|
unknown:
|
|
default: true
|