devopsby automateyournetwork
Topology Discovery
automateyournetwork/pyats-topology
Network topology discovery via CDP/LLDP neighbors, ARP tables, routing peers, and interface mapping to build complete network maps.
What it changes
Passed 21 of 23 test cases with the skill, and 5 of 23 without it.
Without skill20%
With skill92%
Checks it passed that the model alone missed
- Invokes pyats_run_show_command for R1 with command show vrf
- Executes pyats_run_show_command targeting R1 with command show arp
- Invokes pyats_run_show_command for R1 with command show standby brief
and 17 more in the full report
18 fixed5 passed either way2 still failing0 broke
- Pass-rate lift
- +72 pp
- Tokens
- +71%
- Agent turns
- 0%
- Response time
- -41%
Model gemini-3.6-flashMeasured 8/16/2026v123 of 25 cases passed with skill · 23 comparable
See it in action
One of 18 test cases the skill fixed. Same model, same prompt, with and without the skill.
PromptDiscovery found R1:Gi0/0/1 connected to SW1:Gi1/0/1, and NetBox dcim.cables has an identical matching cable entry. Categorize this link.
What was checked, without and with the skill| Checked | Without skill | With skill |
|---|
| Categorizes a link present in both discovery and NetBox as DOCUMENTED | Missed | Passed |
|---|
What's inside
The instructions your model reads when the skill loads.
SKILL.md193 linessingle file
Topology Discovery
When to Use
- Building network diagrams from scratch (no documentation exists)
- Validating existing documentation matches reality
- Pre-change topology baseline
- Incident response — understanding blast radius
- New device onboarding — mapping where it connects
Discovery Procedure
Step 1: CDP Neighbors (Cisco-to-Cisco)
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show cdp neighbors detail"}'
Extract per neighbor:
- Device ID (hostname)
- Platform and model
- IP address (management address)
- Local interface → Remote interface (link mapping)
- Software version
- Native VLAN (on switch links)
- Duplex
Build adjacency table:
Local Device | Local Interface | Remote Device | Remote Interface | Remote Platform
R1 | Gi0/0/0 | SW1 | Gi1/0/1 | WS-C3850-24T
R1 | Gi0/0/1 | R2 | Gi0/0/0 | ISR4431
Step 2: LLDP Neighbors (Multi-Vendor)
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show lldp neighbors detail"}'
Track record
Benchmark
21 / 23
test cases passed, vs 5 / 23 without
Adoption
- Users
- 0
- Times used
- 0
Safety and source details
SkillSafety
✓ 3 of 3 passed✓Code scan15 of 15 checks clean
0 critical · 0 warning · 0 info — scanner v4 — 8/3/2026
View 15 scanner checks
live_secretremote_code_executionreverse_shelldata_exfiltrationssrf_metadataagent_snoopinganti_refusaldestructive_commandsobfuscated_unicodeunicode_homoglyphopaque_blobsuspicious_urltool_overreachtrigger_abuseprompt_injection_phrasing
✓IntentSafe
LLM judge · does the skill do what it claims
✓ContentClean
LLM judge · policy & harmful-content review
Source
Importedautomateyournetwork / netclaw
workspace/skills/pyats-topology/SKILL.md
View on GitHub ↗License Apache-2.0Imported 8/3/2026Version v1