Skip to content

Rework priority estimation GitHub action according to reach/impact/effort methodology #2615

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Jul 24, 2025

This PR completely reworks the priority estimation logic in the GitHub action to use a new reach/impact/effort methodology as specified in the project roadmap estimation documentation.

Changes Made

🔄 Updated Priority Calculation Formula

Before: Simple priority labels + days old

const basePriority = Math.min(...labels.map(l => labelWeights[l] || 10), 1000);
const finalScore = basePriority + daysOld;

After: Reach/Impact/Effort methodology

Priority Score = (Reach × Impact) / Effort

📊 New Label Mappings

  • Reach (user/stakeholder impact): reach:high (100), reach:medium (75), reach:low (50)
  • Impact (value/benefit): impact:high (200), impact:medium (137.5), impact:low (75)
  • Effort (work required): effort:high (10), effort:medium (5), effort:low (2)

🎯 Example Validation

The implementation correctly handles the example from the issue:

Labels: reach:low
Calculation: (50 × 137.5) / 5 = 1,375 ✅

🛡️ Robust Fallback Logic

  • Gracefully handles missing labels with sensible defaults
  • Preserves existing GraphQL project integration
  • Enhanced logging for debugging and validation

Testing

Created comprehensive test documentation with 15 test cases covering:

  1. Basic scenarios: All combinations of reach/impact/effort values
  2. Missing labels: Fallback behavior validation
  3. Edge cases: Boundary conditions, multiple labels, min/max scores
  4. Complex scenarios: Label updates, conflicting labels, relative priorities

Example test cases:

  • High priority: reach:high + impact:high + effort:low10,000
  • Low priority: reach:low + impact:low + effort:high375
  • Missing labels: Uses defaults to ensure calculation never fails

All test cases have been validated locally and include step-by-step instructions for manual verification.

Files Modified

  • .github/workflows/priority-score.yml - Updated action with new calculation logic
  • priority-estimation-tests.md - Comprehensive test cases and validation guide

The action maintains full backward compatibility with the existing project board integration while providing more nuanced and accurate priority scoring.

Fixes #2614.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits July 24, 2025 11:21
…ffort

Co-authored-by: antonkovalenko <692649+antonkovalenko@users.noreply.github.com>
Co-authored-by: antonkovalenko <692649+antonkovalenko@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] rework estimating github action according to estimation mathodology Rework priority estimation GitHub action according to reach/impact/effort methodology Jul 24, 2025
@Copilot Copilot AI requested a review from antonkovalenko July 24, 2025 11:25
Copilot finished work on behalf of antonkovalenko July 24, 2025 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

rework estimating github action according to estimation mathodology
2 participants