| name | discovery-review-criteria |
| description | Use when reviewing DISCOVER artefacts (triage reports, sprint proposals) for completeness, prioritization quality, and duplicate handling. Contains gate definitions G1-G6 and scoring rubric for the backlog-discoverer-reviewer lenses. |
Discovery Review Criteria
Overview
Formal gate definitions and verdict rubric for the backlog-discoverer-reviewer. Applied across 3 lenses with 6 gates (G1–G6).
| Lens | Gates | What it checks |
|---|
| Completeness | G1, G2 | Was the discovery thorough? Were important issues missed? |
| Prioritization | G3, G4 | Is prioritization coherent and the sprint realistic? |
| Duplicate Detection | G5, G6 | Are duplicates correctly identified and linked? |
Gate Definitions (G1–G6)
Lens 1: Completeness
| ID | Definition | Pass Condition | Severity |
|---|
| G1 | Both supported discovery modes were considered, and the triage report explicitly documents selected/skipped reason for each mode with dedicated lines. | The report contains both lines: `User-assigned: selected | skipped — andSearch-based: selected |
| G2 | No P0 or P1 issues exist in the repository but are absent from the triage report. Verify by sampling: query for label:priority/P0,priority/P1 is:open is:issue sort:created-desc, take top 5, check each appears in the triage report. | Zero critical issues absent from triage. | BLOCKER |
Lens 2: Prioritization
| ID | Definition | Pass Condition | Severity |
|---|
| G3 | All P0 issues have a written justification in the Notes field. P1–P3 follows descending business value order. No priority inversions (a P2 that is clearly more urgent than a P1 in the same domain). | No priority inversions. All P0 justified. | HIGH |
| G4 | Sprint proposal respects declared capacity. Total effort ≤ effective capacity (team-days × 0.7) for non-P0 issues. No P2/P3 issue occupies a sprint slot while a P0/P1 issue is excluded. XL issues are not in the sprint. | Capacity respected; XL issues excluded. | HIGH |
Lens 3: Duplicate Detection
| ID | Definition | Pass Condition | Severity |
|---|
| G5 | No two issues in the triage report describe the same problem (normalized title similarity > 80%). Normalize: lowercase, remove stop words, sort words alphabetically, compare overlap ratio. | Zero undetected exact or near-duplicate pairs. | HIGH |
| G6 | All issue pairs with 40–80% normalized title similarity are noted in the "Duplicates Detected" section with a recommendation (merge, link, or keep separate). | All similar pairs flagged with recommendation. | MEDIUM |
Completeness Scoring
Discovery is considered sufficient when:
- Both supported modes were applied — or skipped modes are justified in the report
- No P0 or P1 issues are missing from the triage (G2 sample check passes)
- Coverage is >80% of open issues in the target area (mode-specific):
- User-assigned: all @me issues are in the report
- Search-based: all issues matching the declared query are in the report
Completeness is not about finding every issue — it is about ensuring critical issues are not hidden.
For single-issue (user-assigned) runs, this exact skipped rationale is recommended and should pass G1:
Search-based: skipped — single user-assigned issue; no milestone or batch target.
Priority Coherence Rules
| Rule | Description |
|---|
| P0 always in sprint | Every P0 issue must appear in the sprint proposal, even if over capacity |
| P0 justification required | Every P0 issue must have a written justification in the Notes field |
| No P3 before P1 | A P3 issue cannot be in the sprint if any P1 issue is excluded |
| P2 after all P1 | Sprint fills P1 before P2 unless P1 is already covered |
| XL never in sprint | XL issues must be split — they cannot enter DISCUSS as-is |
| No priority inversion | A P2 issue with more urgency than a P1 in the same domain = G3 fail |
Duplicate Similarity Thresholds
| Level | Similarity | Action Required |
|---|
| EXACT | > 95% | One issue must be labeled status/duplicate and linked to the original |
| NEAR | 80–95% | Recommendation to merge. Both issues linked. Documented in triage. |
| RELATED | 40–80% | Flagged in triage as "related". Recommendation documented. No merge required. |
| DIFFERENT | < 40% | No action required |
G5 threshold: > 80% = must flag (covers both EXACT and NEAR)
G6 threshold: 40–80% = should flag (covers RELATED)
Sprint Capacity Rules
| Rule | Applies To |
|---|
| P0 overrides capacity | P0 issues enter sprint regardless of effective capacity |
| Effective capacity = team-days × 0.7 | Applies to P1/P2/P3 issues |
| Over-capacity P0 must be documented | Triage report must note "P0 override" |
| XL exclusion is absolute | No XL issue enters sprint — G4 fail if present |
| P2/P3 after all P1 | P2/P3 issues fill remaining capacity after all P1s |
Verdict Derivation Table
| Condition | Verdict |
|---|
| G2 fails (BLOCKER: P0/P1 missing from triage) | rejected |
| G1 fails (HIGH: modes not covered) | changes_requested |
| G3 fails (HIGH: priority inversions or missing P0 justification) | changes_requested |
| G4 fails (HIGH: capacity violated or XL in sprint) | changes_requested |
| G5 fails (HIGH: undetected near-duplicates) | changes_requested |
| G6 fails only (MEDIUM: related pairs not flagged) | changes_requested |
| All gates pass | approved |
References