Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions submissions/resolution-advisor/evals/evals.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"skill_name": "resolution-advisor",
"evals": [
{
"id": "resolution-advisor-eval",
"name": "Resolution Advisory Methodology",
"prompt": "After analyzing a failed AAP job and inspecting host facts, you need to provide resolution recommendations. The failure was classified as a Configuration error (privilege escalation timeout).\n\nDescribe your resolution advisory methodology: what documentation you consult, how you map error classifications to resolution paths, and how you determine the resolution owner.",
"expected_output": "A resolution methodology that consults error classification and troubleshooting documentation, maps error types to resolution paths and owners (Platform team, Developer, Ops), and provides Red Hat documentation-backed recommendations.",
"assertions": [
"The output describes consulting error classification documentation to determine the resolution path based on the error type.",
"The output describes mapping error classifications to resolution owners (e.g., Platform errors -> platform team, Code errors -> developer, Configuration errors -> ops).",
"The output describes providing resolution recommendations backed by specific Red Hat documentation references.",
"The output describes this skill as running after job-failure-analyzer and host-fact-inspector have already completed their analysis."
]
}
]
}
5 changes: 5 additions & 0 deletions submissions/resolution-advisor/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: resolution-advisor
description: "Provide Red Hat documentation-backed resolution recommendations for"
persona: rh-sre
version: "1.0.0"
eval_engine: ase
175 changes: 175 additions & 0 deletions submissions/resolution-advisor/skills/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
---
name: resolution-advisor
description: 'Provide Red Hat documentation-backed resolution recommendations for
classified job errors.


Use when:

- After failure analysis and host fact inspection: "How do I fix this?"

- "What does Red Hat recommend for this error?"

- "What''s the fix for privilege escalation timeout?"

- "Is this a known AAP issue?"


NOT for: analyzing events (use job-failure-analyzer first) or checking host facts
(use host-fact-inspector first).

'
license: Apache-2.0
---

# Resolution Advisor

## Prerequisites

**Required MCP Servers**: None required (this skill provides advisory based on documentation)

## When to Use This Skill

Use this skill when:
- After `job-failure-analyzer` has classified the error type
- After `host-fact-inspector` has correlated host facts (when applicable)
- As the final step in the forensic-troubleshooter workflow
- User asks for resolution recommendations

Do NOT use when:
- Job events haven't been analyzed yet (run `job-failure-analyzer` first)
- Host facts haven't been checked (run `host-fact-inspector` first if hosts are involved)
- User wants to execute a job (use governance-executor skill)

## Workflow

### Step 1: Consult Error Classification and Troubleshooting Documentation

**CRITICAL**: Document consultation MUST happen BEFORE providing recommendations.

**Document Consultation** (REQUIRED - Execute FIRST):
1. **Action**: Read [error-classification.md](../../docs/references/error-classification.md) using the Read tool to understand the error taxonomy, classification decision tree, and resolution path mapping
2. **Action**: Read [job-troubleshooting.md](../../docs/aap/job-troubleshooting.md) using the Read tool to understand failure pattern details and Red Hat source citations
3. **Output to user**: "I consulted [error-classification.md](docs/references/error-classification.md) and [job-troubleshooting.md](docs/aap/job-troubleshooting.md) to determine the resolution path based on Red Hat's troubleshooting guidance."

### Step 2: Determine Resolution Path

Using the error classification from `job-failure-analyzer` and the correlation from `host-fact-inspector`, map to the resolution path from error-classification.md:

| Classification | Resolution Owner | Red Hat Doc Reference |
|---|---|---|
| Platform - Host Unreachable | Network/Infra team | AAP 2.6 Troubleshooting Guide |
| Platform - EE Unavailable | Platform Admin | AAP 2.6 EE Guide |
| Platform - Capacity | Platform Admin | AAP 2.5 Instance Groups (Ch. 17) |
| Code - Undefined Variable | Playbook Developer | Ansible Variable Precedence docs |
| Code - Wrong Package | Playbook Developer | RHEL Package Management docs |
| Code - Syntax Error | Playbook Developer | Ansible Playbook Guide |
| Config - Privilege Escalation | Ops Team | AAP 2.6 Troubleshooting Guide |
| Config - Credential Mismatch | Ops Team | AAP 2.5 Security Best Practices |
| Config - Service Failure | Ops Team | systemd documentation |
| Config - Missing Collection | Platform Admin | AAP 2.6 EE Guide |

### Step 3: Generate Resolution Advisory

**Output format**:

```
## Resolution Advisory

### Error Summary
**Classification**: [Platform / Code / Configuration] Error
**Pattern**: [Specific pattern from error-classification.md]
**Affected**: [hosts/tasks from failure analysis]

### Red Hat Guidance

Per Red Hat's *[Source Document]*:
> "[Direct quote or guidance from the cited Red Hat documentation]"

### Resolution Steps

**Resolution Owner**: [Network/Infra / Platform Admin / Playbook Developer / Ops Team]

1. [Specific step with Red Hat doc reference]
2. [Specific step with Red Hat doc reference]
3. [Verification step]

### Prevention

Per Red Hat's *[Source Document]* ([Section]):
> "[Guidance on preventing this type of error]"

**Recommended governance control**: [e.g., "Add check mode to catch this in dry runs", "Configure notifications for this failure type"]

### Related Governance Gaps

[If the error points to a governance gap from governance-readiness.md domains, note it]
- Example: "Privilege escalation failures may indicate missing credential separation (Domain 4: Credential Security)"
- Example: "Capacity exhaustion may indicate insufficient workload isolation (Domain 6: Workload Isolation)"
```

### Step 4: Suggest Governance Improvements

If the failure correlates with a governance readiness domain, recommend the user run a governance assessment:

- Platform errors (capacity, EE) → Domains 5 (EE) and 6 (Workload Isolation)
- Configuration errors (credentials, privilege escalation) → Domains 3 (RBAC) and 4 (Credential Security)
- Repeated failures without notification → Domain 2 (Notification Coverage)

## Dependencies

### Required MCP Servers
- None (advisory-only skill based on documentation)

### Required MCP Tools
- None (advisory-only skill based on documentation)

### Related Skills
- `job-failure-analyzer` - Provides error classification input
- `host-fact-inspector` - Provides host correlation input
- `governance-readiness-assessor` - For governance gap follow-up
- `execution-summary` - Audit trail

### Reference Documentation
- [error-classification.md](../../docs/references/error-classification.md) - Error taxonomy and resolution paths
- [job-troubleshooting.md](../../docs/aap/job-troubleshooting.md) - Failure patterns and Red Hat citations

## Example Usage

**User**: "How do I fix the package not found error from Job #4451?"

**Agent**:
1. Reads error-classification.md and job-troubleshooting.md
2. Reports: "I consulted error-classification.md and job-troubleshooting.md to determine the resolution path."
3. Classification: Code Error - Wrong Package Name (Pattern 2b from error-classification.md)
4. Provides resolution:

```
## Resolution Advisory

### Error Summary
**Classification**: Code Error
**Pattern**: Wrong Package Name (2b)
**Affected**: Host web-prod-01, Task "Install security package"

### Red Hat Guidance

Per Red Hat's *AAP 2.6 Troubleshooting Guide*:
> "Module failures typically indicate an issue with the playbook task definition."

### Resolution Steps

**Resolution Owner**: Playbook Developer

1. Verify the package name exists in the target OS repositories
2. Check `ansible_distribution` and `ansible_distribution_version` for the host
3. Update the playbook with the correct package name
4. Re-run with check mode to validate before full execution

### Prevention

Per Red Hat's *Controller Best Practices*:
> "Use separate inventories for production and development environments."

Test playbook changes in a development inventory first.
```
46 changes: 46 additions & 0 deletions submissions/resolution-advisor/skills/references/INDEX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Documentation Index

Navigation guide for the rh-automation knowledge base. These documents are read by skills at runtime to provide Red Hat documentation-backed intelligence.

## How Documents Are Used

```
User Request → Agent → Skill reads document → Skill queries MCP tools → Skill interprets with document knowledge → Output with Red Hat citations
```

## Document Map

### AAP Category (`docs/aap/`)

Platform governance, execution, and troubleshooting references for Ansible Automation Platform.

| Document | Purpose | Skills That Read It | Red Hat Sources |
|----------|---------|-------------------|----------------|
| [governance-readiness.md](aap/governance-readiness.md) | 7-domain platform governance assessment | `governance-readiness-assessor` | 8 sources (Security Best Practices, Workflows, Notifications, RBAC, Instance Groups, Activity Stream, EE Guide, Hardening Guide) |
| [execution-governance.md](aap/execution-governance.md) | Risk classification, check mode, rollback, phased rollout | `execution-risk-analyzer`, `governed-job-launcher` | 5 sources (Job Templates, Security Best Practices, Workflows, Check Mode, Controller Best Practices) |
| [job-troubleshooting.md](aap/job-troubleshooting.md) | Event parsing, host correlation, failure patterns | `job-failure-analyzer`, `host-fact-inspector` | 3 sources (Troubleshooting Guide, Job Events, Administration Guide) |

### References Category (`docs/references/`)

Cross-cutting reference material used across multiple use cases.

| Document | Purpose | Skills That Read It | Red Hat Sources |
|----------|---------|-------------------|----------------|
| [error-classification.md](references/error-classification.md) | Error taxonomy, classification trees, resolution paths | `resolution-advisor` | 3 sources (Troubleshooting Guide, Ansible Module docs, Administration Guide) |

## Task-to-Document Mapping

| User Task | Primary Document | Secondary Document |
|-----------|-----------------|-------------------|
| "Assess governance readiness" | governance-readiness.md | -- |
| "Execute on production" | execution-governance.md | governance-readiness.md (optional pre-check) |
| "Analyze failed job" | job-troubleshooting.md | error-classification.md |
| "How to fix this error?" | error-classification.md | job-troubleshooting.md |

## Semantic Indexing

The `.ai-index/` directory contains pre-computed indexes for efficient document discovery:

- `semantic-index.json` -- Document metadata with semantic keywords
- `task-to-docs-mapping.json` -- Pre-computed document sets for common workflows
- `cross-reference-graph.json` -- Document relationship graph
17 changes: 17 additions & 0 deletions submissions/resolution-advisor/skills/references/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# References Documentation

Cross-cutting reference material used across multiple use cases.

## Documents

| Document | Purpose | Use Case |
|----------|---------|----------|
| [error-classification.md](error-classification.md) | Error taxonomy, classification decision trees, resolution path mapping | UC3: Forensic Troubleshooting |

## How to Use

Reference documents provide classification frameworks and taxonomies. They complement the AAP-specific documents by providing structured decision-making guidance.

```
AAP doc provides failure patterns → Reference doc classifies and maps to resolution paths
```
Loading