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: skills/rca-annotator/SKILL.md
+180Lines changed: 180 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,17 @@
1
1
---
2
2
name: rca-annotator
3
+
<<<<<<< HEAD
3
4
description: LLM-as-judge skill that independently evaluates root-cause-analysis outputs to produce ground-truth annotations with multi-pass consistency checks, difficulty calibration, and complete evidence traceability.
5
+
=======
6
+
description: Structured annotation tool that walks users through reviewing and labeling root-cause-analysis outputs, with evidence traceability, difficulty calibration, and alternative diagnosis capture.
7
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
4
8
allowed-tools:
5
9
- Read
6
10
- Write
7
11
- Bash
8
12
---
9
13
14
+
<<<<<<< HEAD
10
15
# RCA Annotator (LLM-as-Judge)
11
16
12
17
An LLM-as-judge skill that independently re-analyzes raw RCA evidence (step1, step3, step4 outputs) to produce ground-truth annotations. The judge forms its own conclusion from the same source evidence the agent had — without reading the agent's diagnosis — producing an unbiased reference label for scoring agent accuracy.
@@ -20,6 +25,21 @@ An LLM-as-judge skill that independently re-analyzes raw RCA evidence (step1, st
20
25
**Use when**: steps 1-4 outputs exist and you need labeled ground-truth data, difficulty benchmarking, or alternative diagnosis identification.
21
26
22
27
**Do NOT use** to perform initial RCA (use `root-cause-analysis`) or directly score agent output (compare annotation externally).
28
+
=======
29
+
# RCA Annotator
30
+
31
+
A structured annotation tool that presents the `root-cause-analysis` agent's diagnosis to the user and guides them through labeling it — capturing whether the diagnosis is correct, evidence quality, difficulty, and alternative hypotheses.
**Use when**: a `root-cause-analysis` run is complete and you want to annotate its output as correct, incorrect, or partially correct — for evaluation, benchmarking, or dataset building.
40
+
41
+
**Do NOT use** to perform initial RCA (use `root-cause-analysis`).
42
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
23
43
24
44
## Prerequisites
25
45
@@ -28,6 +48,10 @@ Verify root-cause-analysis has been completed.
28
48
-`JUMPBOX_URI` (optional) — SSH connection string (e.g. `"user@host -p 2222"`). If unset, uses local `.analysis/` only.
29
49
- SSH keys configured in `~/.ssh/config` if using jumpbox; `ssh` and `rsync` installed.
30
50
-**Required files** in `.analysis/<job_id>/`:
51
+
<<<<<<< HEAD
52
+
=======
53
+
-`step5_summary.json` — Agent's final diagnosis (primary input)
-`step3_correlation.json` — Timeline with AAP + Splunk events
33
57
-`step4_github_fetch_history.json` — Configuration and code context
@@ -37,11 +61,18 @@ If missing, run `root-cause-analysis` skill first.
37
61
## Workflow
38
62
39
63
0. Download from jumpbox (if `JUMPBOX_URI` set) or verify local files
64
+
<<<<<<< HEAD
40
65
1. Read step1, step3, step4 (never the agent's diagnosis)
41
66
2. Independently determine root cause with evidence scoring and traceability
42
67
3.*(Optional)* Multi-pass consistency check
43
68
4. Write `annotation_draft.json`
44
69
5. Upload to jumpbox (if `JUMPBOX_URI` set)
70
+
=======
71
+
1. Read `step5_summary.json` — present the agent's diagnosis to the user
72
+
2. Walk through annotation questions interactively — the user labels each section
73
+
3. Write `annotation.json` with the user's labels
74
+
4. Upload to jumpbox (if `JUMPBOX_URI` set)
75
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
45
76
46
77
---
47
78
@@ -56,6 +87,7 @@ Downloads from jumpbox `/usr/local/mlflow/<job_id>/` to local `.analysis/<job_id
56
87
57
88
---
58
89
90
+
<<<<<<< HEAD
59
91
## Step 1: Read Outputs
60
92
61
93
Read in order: **step1** (job metadata, failed tasks, errors) → **step3** (correlated timeline incl. Splunk) → **step4** (config hierarchy and code). Skip `step2_splunk_logs.json` — step3 already includes correlated events.
@@ -133,11 +165,112 @@ For high-stakes annotations or medium/low initial confidence. Run 2-3 independen
133
165
- All differ → confidence: low, flag for human review
134
166
135
167
Skip if initial confidence is high and difficulty is easy.
168
+
=======
169
+
## Step 1: Read Agent Diagnosis
170
+
171
+
Read `step5_summary.json` and present the agent's diagnosis clearly to the user:
172
+
173
+
- Root cause category and summary
174
+
- Confidence level
175
+
- Key evidence cited
176
+
- Difficulty score (if present)
177
+
- Recommendations
178
+
- Alternative diagnoses (if any)
179
+
180
+
This is the starting point for annotation. The user is reviewing the agent's work.
181
+
182
+
---
183
+
184
+
## Step 2: Interactive Annotation
185
+
186
+
Walk through each question below with the user. Present the relevant section from `step5_summary.json` before asking each question. Wait for the user's response before continuing.
187
+
188
+
### 1. Root Cause Category
189
+
190
+
Present the agent's category and summary. Ask:
191
+
192
+
> **Is the root cause category correct?***(e.g. `configuration`, `infrastructure`, `credential` — or should it be something else?)*
> **Is the summary accurate and specific?***(Does it clearly describe what failed and why?)*
201
+
202
+
### 3. Evidence
203
+
204
+
Present the evidence items the agent cited. Ask:
205
+
206
+
> **Is any evidence missing or wrong?***(Any key log lines, config values, or Splunk events that were overlooked or incorrectly cited?)*
207
+
208
+
If the user wants to cross-check, read step1/step3/step4 and compare against what the agent cited. This is reference material for validation — not a re-analysis.
209
+
210
+
**Evidence traceability format** (for any new or corrected evidence items the user provides):
`plausibility`: `high` = shares many characteristics | `medium` = some evidence | `low` = superficial similarity
267
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
136
268
137
269
---
138
270
139
271
## Step 3: Write Annotation
140
272
273
+
<<<<<<< HEAD
141
274
Verify before writing:
142
275
- All required files read (step1, step3, step4)
143
276
- Root cause category matches evidence
@@ -148,6 +281,17 @@ Verify before writing:
148
281
- Alternative diagnoses have plausibility levels
149
282
150
283
Write `annotation_draft.json` to `.analysis/<job_id>/`.
284
+
=======
285
+
After all questions are answered, verify before writing:
286
+
287
+
- Root cause category confirmed or corrected
288
+
- Exactly one evidence item has `is_root_cause: true`
289
+
- All evidence has traceability (source_file, json_path, exact_value/quote)
290
+
- Difficulty score calculated with justification
291
+
- Alternative diagnoses have plausibility levels
292
+
293
+
Write `annotation.json` to `.analysis/<job_id>/`.
294
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
151
295
152
296
---
153
297
@@ -158,29 +302,50 @@ cd skills/rca-annotator
158
302
python scripts/cli.py upload --job-id <job_id>
159
303
```
160
304
305
+
<<<<<<< HEAD
161
306
Uploads `.analysis/<job_id>/annotation_draft.json` to jumpbox if `JUMPBOX_URI` set. Local copy always preserved. If `JUMPBOX_URI` unset, file remains local only.
307
+
=======
308
+
Uploads `.analysis/<job_id>/annotation.json` to jumpbox if `JUMPBOX_URI` set. Local copy always preserved. If `JUMPBOX_URI` unset, file remains local only.
309
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
162
310
163
311
---
164
312
165
313
## Output Format
166
314
315
+
<<<<<<< HEAD
167
316
Save to `.analysis/<job_id>/annotation_draft.json`:
317
+
=======
318
+
Save to `.analysis/<job_id>/annotation.json`:
319
+
>>>>>>> 56b6ac4 (Feat/rca annotator (#14))
168
320
169
321
```json
170
322
{
171
323
"job_id": "1234567",
324
+
<<<<<<< HEAD
172
325
"annotator": "claude_judge",
173
326
"annotated_at": "2026-03-19T12:00:00Z",
174
327
"difficulty": "easy | medium | hard",
175
328
"difficulty_score": 5,
176
329
"difficulty_justification": "Requires correlating task code (+2) with missing configs...",
330
+
=======
331
+
"annotated_at": "2026-03-19T12:05:00Z",
332
+
333
+
"category_correct": true,
334
+
"category_comment": "Confirmed — matches the auth retry pattern.",
0 commit comments