You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,6 +104,11 @@ Starts backend on `:8080` and frontend on `:5174` with a mock `dev-user` account
104
104
- Update documentation when changing behavior
105
105
- Keep PRs focused on a single concern
106
106
107
+
### Review and Auto-QA Triage
108
+
109
+
The project tracks proposed review and triage expectations in [docs/plans/PR-TRIAGE-SLA.md](docs/plans/PR-TRIAGE-SLA.md).
110
+
Issues or PRs labeled `ai-needs-human` need a human decision rather than more automation. For Auto-QA issues, the expected decision is to accept, defer, or close the finding so contributors know whether follow-up work, including PRs, is welcome.
111
+
107
112
### Netlify Functions parity for API changes
108
113
109
114
If your PR changes shared API behavior, update both sides of the production architecture:
|[plans/GITOPS-INTEGRATION-RFC.md](plans/GITOPS-INTEGRATION-RFC.md)| Concrete mid-term RFC for Flux + Argo CD integration, declarative Console config, and Mission Control deep links. |
35
+
|[plans/PR-TRIAGE-SLA.md](plans/PR-TRIAGE-SLA.md)| Proposed review and Auto-QA triage SLA for `ai-needs-human` PRs and issues. |
35
36
|[plans/UNIFIED-DEMO-SKELETON-PLAN.md](plans/UNIFIED-DEMO-SKELETON-PLAN.md)| Implementation plan for the unified demo-data and loading-skeleton system. |
36
37
|[plans/planjan21.md](plans/planjan21.md)| Plan for console filtering and data-consistency improvements from January 2026. |
37
38
|[qa/AI-UX-ISSUE-AGENT-BRIEF.md](qa/AI-UX-ISSUE-AGENT-BRIEF.md)| Operating brief for the agent that turns Playwright UX findings into issues. |
KubeStellar Console uses Claude Code GitHub Actions for AI-assisted PR review and issue triage. PRs labeled `ai-needs-human` indicate cases where the AI agent has identified issues that require human judgment, but without a defined service level agreement (SLA) or escalation path, these PRs can remain stuck indefinitely. This creates contributor friction, slows down the review pipeline, and undermines the effectiveness of the AI triage system.
9
+
KubeStellar Console uses Claude Code GitHub Actions for AI-assisted PR review and issue triage. PRs and issues labeled `ai-needs-human` indicate cases where the AI agent has identified work that requires human judgment, but without a defined service level agreement (SLA) or escalation path, these items can remain stuck indefinitely. This creates contributor friction, slows down the review pipeline, and undermines the effectiveness of the AI triage system.
10
10
11
-
Without clear expectations for human review latency, contributors cannot estimate when their PRs will be merged, and maintainers lack prioritization signals to focus their limited review bandwidth.
11
+
Without clear expectations for human review latency, contributors cannot estimate when their PRs will be merged or when Auto-QA findings will be accepted, deferred, or closed. Maintainers also lack prioritization signals to focus their limited review bandwidth.
12
12
13
13
## Goals
14
14
15
15
1. Establish measurable SLA targets for PR triage across all states (`needs-review`, `ai-needs-human`, `changes-requested`).
16
-
2. Define a clear escalation path for `ai-needs-human` PRs that exceed the SLA threshold.
16
+
2. Define a clear escalation path for `ai-needs-human` PRs and issues that exceed the SLA threshold.
17
17
3. Automate SLA monitoring and alerting to surface stuck PRs before they become stale.
18
-
4. Provide contributors with visibility into expected review timelines.
18
+
4. Provide contributors with visibility into expected review and triage timelines.
19
19
5. Generate weekly triage reports to track SLA adherence and identify bottlenecks.
20
20
21
21
## Non-goals
@@ -24,6 +24,7 @@ Without clear expectations for human review latency, contributors cannot estimat
24
24
- Guaranteeing immediate reviews for all PRs — the SLA establishes targets, not hard commitments.
25
25
- Auto-merging PRs without human approval, even when AI review passes.
26
26
- Applying SLAs to draft PRs or PRs explicitly marked as work-in-progress.
27
+
- Requiring maintainers to implement every Auto-QA finding. The SLA requires a clear decision, not automatic acceptance.
27
28
28
29
## Current foundation
29
30
@@ -69,6 +70,36 @@ When a PR receives the `ai-needs-human` label, the following escalation sequence
69
70
4.**Day 7** — If still unreviewed, label added to bi-weekly contributor sync agenda; maintainer availability evaluated.
70
71
5.**Day 14** — Project lead makes merge/close/defer decision; outcome documented in PR comment.
71
72
73
+
## Auto-QA issue triage SLA
74
+
75
+
Auto-QA issues can represent real quality gaps, noisy thresholds, or work that is too broad for a single PR. When an issue receives both `auto-qa` and `ai-needs-human`, the goal is to record a human decision within 14 days.
76
+
77
+
### Required decision
78
+
79
+
Each stuck Auto-QA issue should receive one of these outcomes:
80
+
81
+
-**Accept**: confirm the finding is actionable, remove `ai-processing`, assign or decompose the work, and leave the issue open.
82
+
-**Defer**: keep the finding but move it to a milestone, roadmap item, or child issues with a clear follow-up path.
83
+
-**Close**: close as not planned when the finding is noisy, too broad, or not worth the maintenance cost.
84
+
85
+
### Current backlog queue
86
+
87
+
Issue #19256 tracks four Auto-QA items that need this decision path:
88
+
89
+
| Issue | Decision needed |
90
+
| --- | --- |
91
+
|#18599| Accept or defer the missing component test coverage work. If accepted, keep work in focused child issues. |
92
+
|#18598| Accept oversized test-file refactoring, tune the threshold, or close if large test files are acceptable. |
93
+
|#19077| Accept bundle-size work, tune the chunk-size threshold, or defer to a performance milestone. |
94
+
|#19161| Audit major dependency updates and decide whether to schedule, defer, or close each upgrade path. |
95
+
96
+
### Escalation path
97
+
98
+
1.**Day 0**: `ai-needs-human` is added; issue comment states the decision needed.
99
+
2.**Day 7**: If no maintainer response, add the issue to the weekly triage agenda and tag a reviewer.
100
+
3.**Day 14**: Maintainer records an accept/defer/close decision and removes `ai-processing`.
101
+
4.**After Day 14**: If no owner exists to take the work, record **Defer** by closing as **not planned** with a short note to reopen when ownership exists.
102
+
72
103
## Automation implementation
73
104
74
105
Deliver SLA enforcement through GitHub Actions workflows:
0 commit comments