refactor(cmdb-assistant): extract skills and slim commands
- Extract 9 skill files from command knowledge: - mcp-tools-reference.md: Complete NetBox MCP tools reference - system-discovery.md: Bash commands for system info gathering - device-registration.md: Device registration workflow - sync-workflow.md: Machine sync process - audit-workflow.md: Data quality audit checks - ip-management.md: IP/prefix management and conflict detection - topology-generation.md: Mermaid diagram generation - change-audit.md: NetBox change audit workflow - visual-header.md: Standard visual header pattern - Slim all 11 commands to under 60 lines: - cmdb-sync.md: 348 -> 57 lines - cmdb-register.md: 334 -> 51 lines - ip-conflicts.md: 238 -> 58 lines - cmdb-audit.md: 207 -> 58 lines - cmdb-topology.md: 194 -> 54 lines - initial-setup.md: 176 -> 74 lines - change-audit.md: 175 -> 57 lines - cmdb-site.md: 68 -> 50 lines - cmdb-ip.md: 65 -> 52 lines - cmdb-device.md: 64 -> 55 lines - cmdb-search.md: 46 lines (unchanged) - Update agent to reference skills for best practices - Preserve existing netbox-patterns skill Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
163
plugins/cmdb-assistant/skills/audit-workflow.md
Normal file
163
plugins/cmdb-assistant/skills/audit-workflow.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# Audit Workflow Skill
|
||||
|
||||
How to audit NetBox data quality.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Load these skills:
|
||||
- `netbox-patterns` - Best practices reference
|
||||
- `mcp-tools-reference` - MCP tool reference
|
||||
|
||||
## Data Collection
|
||||
|
||||
```
|
||||
virt_list_vms
|
||||
dcim_list_devices
|
||||
virt_list_clusters
|
||||
dcim_list_sites
|
||||
tenancy_list_tenants
|
||||
dcim_list_device_roles
|
||||
dcim_list_platforms
|
||||
```
|
||||
|
||||
## Quality Checks by Severity
|
||||
|
||||
### CRITICAL (must fix immediately)
|
||||
|
||||
| Check | Detection |
|
||||
|-------|-----------|
|
||||
| VMs without cluster | `cluster` is null AND `site` is null |
|
||||
| Devices without site | `site` is null |
|
||||
| Active devices without primary IP | `status=active` AND `primary_ip4` is null AND `primary_ip6` is null |
|
||||
|
||||
### HIGH (should fix soon)
|
||||
|
||||
| Check | Detection |
|
||||
|-------|-----------|
|
||||
| VMs without site | No site (neither direct nor via cluster.site) |
|
||||
| VMs without tenant | `tenant` is null |
|
||||
| Devices without platform | `platform` is null |
|
||||
| Clusters not scoped to site | `site` is null on cluster |
|
||||
| VMs without role | `role` is null |
|
||||
|
||||
### MEDIUM (plan to address)
|
||||
|
||||
| Check | Detection |
|
||||
|-------|-----------|
|
||||
| Inconsistent naming | Names don't match patterns |
|
||||
| Role fragmentation | >10 device roles with <3 assignments each |
|
||||
| Missing tags on production | Active resources without tags |
|
||||
| Mixed naming separators | Some `_`, others `-` |
|
||||
|
||||
### LOW (informational)
|
||||
|
||||
| Check | Detection |
|
||||
|-------|-----------|
|
||||
| Docker containers as VMs | Cluster type is "Docker Compose" |
|
||||
| VMs without description | `description` is empty |
|
||||
| Sites without physical address | `physical_address` is empty |
|
||||
| Devices without serial | `serial` is empty |
|
||||
|
||||
## Naming Convention Analysis
|
||||
|
||||
### Expected Patterns
|
||||
|
||||
| Object Type | Pattern | Example |
|
||||
|-------------|---------|---------|
|
||||
| Devices | `{role}-{location}-{number}` | `web-dc1-01` |
|
||||
| VMs | `{env}-{app}-{number}` | `prod-api-01` |
|
||||
| Clusters | `{site}-{type}` | `home-docker` |
|
||||
|
||||
### Analysis Steps
|
||||
|
||||
1. Extract naming patterns from existing objects
|
||||
2. Identify dominant patterns (most common)
|
||||
3. Flag outliers that don't match
|
||||
4. Suggest standardization
|
||||
|
||||
## Role Fragmentation Analysis
|
||||
|
||||
### Red Flags
|
||||
|
||||
- More than 15 highly specific roles
|
||||
- Roles with technology in name (use platform instead)
|
||||
- Roles that duplicate functionality
|
||||
- Single-use roles (only 1 device/VM)
|
||||
|
||||
### Recommended Consolidation
|
||||
|
||||
Use general roles + platform/tags for specificity:
|
||||
- Instead of `nginx-web-server`, use `web-server` + platform `nginx`
|
||||
|
||||
## Report Template
|
||||
|
||||
```markdown
|
||||
## CMDB Data Quality Audit Report
|
||||
|
||||
**Generated:** [timestamp]
|
||||
**Scope:** [scope parameter]
|
||||
|
||||
### Summary
|
||||
|
||||
| Metric | Count |
|
||||
|--------|-------|
|
||||
| Total VMs | X |
|
||||
| Total Devices | Y |
|
||||
| Total Clusters | Z |
|
||||
| **Total Issues** | **N** |
|
||||
|
||||
| Severity | Count |
|
||||
|----------|-------|
|
||||
| Critical | A |
|
||||
| High | B |
|
||||
| Medium | C |
|
||||
| Low | D |
|
||||
|
||||
### Critical Issues
|
||||
|
||||
[List each with specific object names and IDs]
|
||||
|
||||
- VM `HotServ` (ID: 1) - No cluster or site assignment
|
||||
- Device `server-01` (ID: 5) - No site assignment
|
||||
|
||||
### High Issues
|
||||
|
||||
[List each with specific object names]
|
||||
|
||||
### Medium Issues
|
||||
|
||||
[Grouped by category with counts]
|
||||
|
||||
### Recommendations
|
||||
|
||||
1. **[Most impactful fix]** - affects N objects
|
||||
2. **[Second priority]** - affects M objects
|
||||
|
||||
### Quick Fixes
|
||||
|
||||
Commands to fix common issues:
|
||||
|
||||
```
|
||||
# Assign site to VM
|
||||
virt_update_vm id=X site=Y
|
||||
|
||||
# Assign platform to device
|
||||
dcim_update_device id=X platform=Y
|
||||
```
|
||||
|
||||
### Next Steps
|
||||
|
||||
- Run `/cmdb-register` to properly register new machines
|
||||
- Use `/cmdb-sync` to update existing registrations
|
||||
- Consider bulk updates via NetBox web UI for >10 items
|
||||
```
|
||||
|
||||
## Scope-Specific Focus
|
||||
|
||||
| Scope | Focus |
|
||||
|-------|-------|
|
||||
| `all` | Full audit across all categories |
|
||||
| `vms` | Virtual Machine checks only |
|
||||
| `devices` | Device checks only |
|
||||
| `naming` | Naming convention analysis |
|
||||
| `roles` | Role fragmentation analysis |
|
||||
Reference in New Issue
Block a user