Team Learning
CodeStax’s review engine adapts to your team’s codebase and preferences. Every time a developer accepts or dismisses a finding, the system learns what matters to your team.
How It Works
Feedback Loop
- A PR review or scan produces findings
- Developers review each finding and provide feedback:
- Accept — confirms the finding is a real issue
- Dismiss — marks it as a false positive or not applicable
- Fix — applies the suggested fix (counts as an accept)
- Feedback is aggregated per pattern, per repository, and per organization
- Future reviews adjust confidence scores based on accumulated feedback
Confidence Adjustment
Each detection pattern maintains a confidence score (0.0 to 1.0):
- Starts at the pattern’s default confidence (typically 0.7-0.9)
- Each acceptance increases confidence by a small amount
- Each dismissal decreases confidence
- When confidence drops below 0.3, the pattern is automatically deprioritized
Deprioritized patterns still run but their findings are collapsed in the UI and do not count toward the risk score.
Feedback Actions
On PR Reviews
When viewing a PR review, each finding has action buttons:
| Action | Effect |
|---|---|
| Accept | Confirms the finding; increases pattern confidence |
| Dismiss | Marks as false positive; decreases pattern confidence |
| Dismiss with reason | Adds context (e.g., “This is test code”, “Intentional for backwards compatibility”) |
| Fix with AI | Applies the suggested fix and counts as an accept |
On Scan Results
In the scan results view, findings can be triaged the same way:
- Right-click or use the action menu on any finding
- Select Accept, Dismiss, or Fix
Tracking Acceptance Rates
Navigate to Dashboard → Reviews → Learnings to view:
Pattern Performance Table
| Column | Description |
|---|---|
| Pattern | Detection pattern name |
| Findings | Total times this pattern triggered |
| Accepted | Count of acceptances |
| Dismissed | Count of dismissals |
| Acceptance Rate | Accepted / (Accepted + Dismissed) |
| Confidence | Current confidence score |
| Status | Active or Deprioritized |
Trends
- Acceptance rate trend over time per pattern
- Overall team acceptance rate (higher means fewer false positives)
- Repository-level breakdown showing which repos have the most dismissals
What Improves Over Time
| Aspect | How It Improves |
|---|---|
| False positive rate | Patterns your team consistently dismisses get deprioritized |
| Severity accuracy | Findings on code your team considers low-risk are softened |
| Context awareness | Test files, configuration files, and generated code are treated differently based on feedback |
| Review focus | High-confidence findings are surfaced first, low-confidence findings are collapsed |
Resetting Feedback
Organization admins can reset feedback data:
- Per pattern: Reset a single pattern’s confidence to its default
- Per repository: Clear all feedback for a specific repo
- Organization-wide: Reset all feedback (use with caution)
Navigate to Dashboard → Reviews → Learnings to access these options.
Best Practices
- Encourage consistent feedback: The system learns fastest when all team members provide feedback, not just a few
- Use dismiss reasons: Reasons help distinguish between “this is wrong” and “this is not relevant here”
- Review deprioritized patterns quarterly: Some may become relevant again as your codebase evolves
- Check acceptance rates after onboarding: New repos may have high dismissal rates initially as the system calibrates