CommunityImagemgithub.com

vsachin094/netdevops-agent-skills

AI agent skills for network automation SSH, NETCONF, gNMI, Ansible, Terraform, parsing, testing, observability, GitOps. Each skill has runnable validators and cross-refs.

O que é netdevops-agent-skills?

netdevops-agent-skills is a Claude Code agent skill that aI agent skills for network automation SSH, NETCONF, gNMI, Ansible, Terraform, parsing, testing, observability, GitOps. Each skill has runnable validators and cross-refs.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/vsachin094/netdevops-agent-skills/tree/main

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que netdevops-agent-skills faz?

AI agent skills for network automation — transport, parsing, Ansible, Terraform, testing, observability, operations, and Cisco NSO.

Each skill is organized in its own directory around a SKILL.md. Depending on the topic, a skill may also include examples, scripts, references, compatibility notes, and links to related skills.

python3 scripts/validate_skills.py

Quick Start

git clone https://github.com/vsachin094/netdevops-agent-skills.git
cd netdevops-agent-skills
python3 scripts/validate_skills.py

Use a skill — copy its directory into your project's agent skills folder:

mkdir -p .agents/skills
cp -R skills/netmiko-core .agents/skills/
cp -R skills/gnmi-client .agents/skills/

Reference in your agent prompt:

Use skills/gnmi-client/SKILL.md.
Build a Python gNMI client that subscribes to interface counters on SR Linux.
Follow the skill's verification steps and run any applicable tests.

Skill Map

graph TD
    classDef transport fill:#e3f2fd,stroke:#1565c0,stroke-width:2px;
    classDef parsing fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px;
    classDef ansible fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px;
    classDef terraform fill:#fff3e0,stroke:#ef6c00,stroke-width:2px;
    classDef testing fill:#fce4ec,stroke:#c2185b,stroke-width:2px;
    classDef observability fill:#f1f8e9,stroke:#558b2f,stroke-width:2px;
    classDef operations fill:#e0f2f1,stroke:#00695c,stroke-width:2px;
    classDef nso fill:#ede7f6,stroke:#5e35b1,stroke-width:2px;
    classDef utilities fill:#fafafa,stroke:#616161,stroke-width:2px;

    subgraph TRANSPORT["Transport (8)"]
        T1[netmiko-core]
        T2[ncclient-restconf]
        T3[paramiko-ssh]
        T4[async-network-automation]
        T5[scrapli-netmiko-threaded]
        T6[gnmi-client]
        T7[gnmi-snmp-telemetry]
        T8[netconf-automation]
    end

    subgraph PARSING["Parsing & Modeling (6)"]
        P1[ntc-textfsm]
        P2[ttp-parsers]
        P3[cli-regex]
        P4[pyang-xpath]
        P5[yang-model-dev]
        P6[network-protocols-as-code]
    end

    subgraph ANSIBLE["Ansible (9)"]
        A1[ansible-role-creation]
        A2[ansible-custom-plugins]
        A3[ansible-ee-build]
        A4[ansible-vault-hygiene]
        A5[ansible-dynamic-inventory]
        A6[ansible-resource-modules]
        A7[ansible-linux-networking]
        A8[ansible-netcli-playbooks]
        A9[ansible-pre-post-checks]
    end

    subgraph TERRAFORM["Terraform (8)"]
        TF1[tf-vpc-foundations]
        TF2[tf-aws-networking]
        TF3[tf-azure-gcp-networking]
        TF4[tf-firewall-policies]
        TF5[tf-module-hardening]
        TF6[tf-state-surgery]
        TF7[tf-aci-sdwan-meraki]
        TF8[tf-to-ansible-inventory]
    end

    subgraph TESTING["Testing & Validation (7)"]
        V1[containerlab-topologies]
        V2[batfish-validation]
        V3[network-testing-framework]
        V4[config-diff-audit]
        V5[config-sanitizer]
        V6[network-config-drift-detection]
        V7[forwardnetworks-nqe]
    end

    subgraph OBSERVABILITY["Observability (1)"]
        O1[network-observability-stack]
    end

    subgraph OPERATIONS["Operations (3)"]
        OP1[gitops-network-automation]
        OP2[network-device-onboarding]
        OP3[network-change-runbooks]
    end

    subgraph NSO["Cisco NSO (5)"]
        N1[nso-device-onboarding]
        N2[nso-nano-services]
        N3[nso-python-fastmap]
        N4[nso-service-package-development]
        N5[nso-xml-templates]
    end

    subgraph UTILITIES["Utilities (10)"]
        U1[ipam-subnetting]
        U2[jinja2-network-templates]
        U3[cli-tool-packaging]
        U4[network-data-pipelines]
        U5[network-rest-clients]
        U6[netbox-nautobot-api]
        U7[nornir-napalm]
        U8[netconf-restconf-payloads]
        U9[pysnmp-automation]
        U10[pyats-genie]
    end

    %% Key cross-category relationships
    T6 -.-> O1
    T7 -.-> O1
    V1 --> V3
    V2 --> V3
    V4 --> V6
    V5 --> V6
    V7 --> V3
    OP1 --> V1
    OP2 --> V1
    OP3 --> V4
    A9 --> OP3
    U2 --> P6
    A1 --> OP3
    TF8 --> A5
    P6 --> A6
    T8 --> A7
    P4 --> P1
    P4 --> P2

    class T1,T2,T3,T4,T5,T6,T7,T8 transport;
    class P1,P2,P3,P4,P5,P6 parsing;
    class A1,A2,A3,A4,A5,A6,A7,A8,A9 ansible;
    class TF1,TF2,TF3,TF4,TF5,TF6,TF7,TF8 terraform;
    class V1,V2,V3,V4,V5,V6,V7 testing;
    class O1 observability;
    class OP1,OP2,OP3 operations;
    class N1,N2,N3,N4,N5 nso;
    class U1,U2,U3,U4,U5,U6,U7,U8,U9,U10 utilities;

Skills by Category

Transport (8)

SkillPurpose
netmiko-coreInventory-driven SSH with Netmiko — per-device results, config_mode per platform, --check/--diff
ncclient-restconfNETCONF/RESTCONF with transactions — candidate datastore, locks, confirmed commit
paramiko-sshRaw SSH/SFTP — strict host-key verify, timeouts, command allow-list
async-network-automationHigh-concurrency async SSH/HTTP — semaphores, bounded queues, cancellation
scrapli-netmiko-threadedThreaded fleet execution — ThreadPoolExecutor, exception isolation
gnmi-clientProgrammatic gNMI Get/Set/Subscribe — Python + Go, TLS/mTLS, typed values
gnmi-snmp-telemetrygNMI/SNMP collection config — gnmic, snmp_exporter, PromQL alerts
netconf-automationNETCONF patterns — capabilities, filters, edit-config, validated commits

Parsing & Modeling (6)

SkillPurpose
ntc-textfsmTextFSM templates — version handling, Filldown leak tests, NTC index
ttp-parsersHierarchical TTP — nested config, matchers, dynamic paths
cli-regexPure Python regex — named groups, ANSI strip, typed extraction
pyang-xpathYANG schema inspection — tree views, exact XPaths
yang-model-devAuthor YANG 1.1 modules — constraints, leafrefs, pyang lint
network-protocols-as-codeVendor-neutral intent → config — L2/L3/BGP/EVPN, multi-vendor

Ansible (9)

SkillPurpose
ansible-role-creationReusable multi-vendor roles — Molecule, argument_specs, platform task split
ansible-custom-pluginsCustom Ansible modules, filters, and connection plugins — check mode, ansible-test
ansible-ee-buildPinned execution environments — requirements.yml/txt, bindep.txt
ansible-vault-hygieneSecret management — vault-id per env, no_log boundaries, trufflehog/gitleaks
ansible-dynamic-inventoryNetBox/AWS/Azure/Terraform sources — keyed_groups, compose, caching
ansible-resource-modulesDeclarative network resources — merged/replaced/overridden/deleted
ansible-linux-networkingLinux host networking — Netplan/NM, FRR, nftables, WireGuard
ansible-netcli-playbooksFoundational network playbooks — FQCNs, network_cli, backup
ansible-pre-post-checksChange safety wrapper — baseline → change → verify → rollback

Terraform (8)

SkillPurpose
tf-vpc-foundationsBase VPC/VNet modules — CIDR validation, flow logs
tf-aws-networkingAWS VPC, TGW, DX, firewall — multi-AZ, route associations
tf-azure-gcp-networkingAzure/GCP hub-spoke, peering — VNet peering, Cloud Router/NAT
tf-firewall-policiesPalo/Forti/Check Point/Cloudflare — stable keys, shadow analysis
tf-module-hardeningSecure modules — tflint/Trivy/Checkov, pin providers
tf-state-surgeryDeclarative state migration — moved/import/removed blocks
tf-aci-sdwan-merakiController-based — hierarchy, stable for_each, async readiness
tf-to-ansible-inventoryTF outputs → Ansible inventory — structured outputs, readiness checks

Testing & Validation (7)

SkillPurpose
containerlab-topologiesLab topologies as code — pinned images, startup config validation
batfish-validationMathematical network analysis — BGP/OSPF/ACL/reachability
network-testing-frameworkpytest + Containerlab + Batfish — unit/integration/contract
config-diff-auditConfig drift detection — normalization, volatile stripping
config-sanitizerConfig/log redaction — deterministic placeholders, topology preservation
network-config-drift-detectionScheduled drift detection — collect → normalize → diff → alert → remediate
forwardnetworks-nqeForward Networks NQE — query modeled network state and preserve snapshot-aware evidence

Observability (1)

SkillPurpose
network-observability-stackPrometheus/Grafana/Loki/Tempo — snmp_exporter, gnmic, PromQL alerts

Operations (3)

SkillPurpose
gitops-network-automationArgoCD/Flux for network config — Kustomize overlays, pre/post sync hooks
network-device-onboardingDay-0: ZTP, creds, host-keys, verify — idempotent, rollback per stage
network-change-runbooksAuditable change execution — pre-checks, approval gates, rollback, evidence

Cisco NSO (5)

SkillPurpose
nso-device-onboardingNSO device onboarding — authgroups, NED assignment, sync-from
nso-nano-servicesReactive, multi-stage NSO services — plans, transitions, and recovery
nso-python-fastmapPython-backed NSO services — FASTMAP callbacks and transactional mapping
nso-service-package-developmentCisco NSO service package design, implementation, and validation
nso-xml-templatesYANG-backed NSO services using XML templates

Utilities (10)

SkillPurpose
ipam-subnettingHierarchical CIDR allocation — VLSM, overlap detection, NetBox/TF seed data
jinja2-network-templatesMulti-vendor templates + filters — capability registry, StrictUndefined
cli-tool-packagingPackaged Python CLIs — Typer/Click, Rich, dry-run, JSON output
network-data-pipelinesPandas/Polars + Pydantic — normalization, cardinality control, quarantine
network-rest-clientsTyped REST clients — timeouts, retries, pagination, idempotency keys
netbox-nautobot-apiNetBox/Nautobot client — GraphQL bulk, pagination, dry-run
nornir-napalmFleet automation with Nornir — inventory layers, compare/commit/discard
netconf-restconf-payloadsXML/JSON payload construction — schema validation, Pydantic models
pysnmp-automationSNMP v1/v2c/v3 async — GET/BULK/SET, traps, MIB resolution
pyats-genieCisco Genie parsers + AEtest — MetaParser, differential pre/post

Skill Structure

skills/<skill-slug>/
├── SKILL.md              # Required: domain guidance, workflow, examples, validation
├── scripts/              # Optional: runnable helpers or validators
└── references/           # Optional: local fixtures, schemas, and supporting material

Not every skill has an offline validator: some require a live controller, device lab, or vendor-specific environment. Validate the collection's shared skill structure with:

python3 scripts/validate_skills.py

Agent Integration

AgentProject LocationExplicit Use
Claude Code.claude/skills/<slug>/SKILL.md/skill <slug>
GitHub Copilot.github/skills or .agents/skills/skill <slug> or natural language
CursorWorkspace + @skills/<slug>/SKILL.md@skills/<slug>/SKILL.md
ContinueWorkspace + .continue/rulesProject rule or attached file
Local LLMAny readable directoryPaste SKILL.md or reference path

Offline Use

Skill documents can be read offline. Running their examples or validating deployment behavior may require vendor tools, network devices, controllers, or other external services. See references/open-source-local.md for recommended layout, dependency tiers, and quality gates.


Contributing

See CONTRIBUTING.md for guidance on adding or updating skills, citing technical claims, validating changes, and submitting pull requests.


License

MIT. Vendor names and product marks remain property of their respective owners.

Habilidades Relacionadas