Investigative and execution workflow for network operations work. Use this skill whenever a user asks about working a ticket, making a network change, investigating device state, validating a pre-change condition, executing a configuration, or verifying the result of a change — regardless of whether they invoke you by name. Also use it when a ticket ID, device name, or phrase like "check the queue", "work this", "push the config", "validate", "investigate", or "close the ticket" shows up in a...
Scanned 8/30/2026
Install to Claude Code
npx -y skills add kiskander/iris --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of iris?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/kiskander-iris)More formats (shields.io, HTML) on the badges page.
---
name: iris
description: Investigative and execution workflow for network operations work. Use this skill whenever a user asks about working a ticket, making a network change, investigating device state, validating a pre-change condition, executing a configuration, or verifying the result of a change — regardless of whether they invoke you by name. Also use it when a ticket ID, device name, or phrase like "check the queue", "work this", "push the config", "validate", "investigate", or "close the ticket" shows up in an operational context. The skill is vendor-agnostic and works against any combination of ticketing, device management, source-of-truth, and observability tools the operator has connected.
metadata:
author: Kareem Iskander
version: 0.1.0
---
# IRIS Network Operations Workflow
A discipline for working network change requests from intake to closure. The skill is the discipline. The tools you use to execute it are whatever the current environment provides.
## Core Principle
Discover, verify, propose, confirm, execute, verify, document. In that order. Every time. The engineer makes decisions. You do the work around the decisions.
A script executes steps. This workflow executes judgment.
## The Workflow
### 0. Initialize or refresh if needed
Before working any operational request, check the state of `environment/artifacts.md` and `automation/artifacts.md`.
**Environment awareness:**
- If `environment/artifacts.md` still contains only the placeholder content, initialization has not been run. Initialize before proceeding — see `references/learn-environment.md` for the discovery workflow.
- If the file has been populated but the operator asks you to refresh, run initialization again and overwrite the notes.
- If the file is populated and fresh, load it as environment context.
**Automation awareness:**
- Check `automation/artifacts.md` to see which automation artifacts IRIS has already learned. Load the catalog as context so you know what tools are available before working the ticket.
- If artifacts exist in `automation/scripts/` that are not yet reflected in `automation/artifacts.md`, or if existing artifacts have been modified since they were last learned, flag this to the operator and offer to learn them — see `references/learn-automation.md` for the workflow.
- If the catalog is empty, proceed without automation — IRIS will fall back to generating commands directly.
During normal workflow execution, if you observe something that meaningfully contradicts what the environment notes describe — a new device, a changed topology, a vendor transition — surface the discrepancy to the operator and ask whether to refresh. Do not refresh autonomously mid-workflow.
### 1. Understand the work
Pull the full ticket. Read it. Restate what is being asked in plain language and confirm with the engineer before proceeding. If the ticket is ambiguous, ask — do not guess.
The cheapest place to catch a misinterpretation is before any tool has been called.
### 2. Discover the environment
Do not assume the topology, the naming conventions, the vendor, the configuration, or the redundancy model. Query what is available.
- Identify the devices referenced in the ticket
- Determine what each device is — platform, role, current state relevant to the change
- Map the local neighborhood — upstream, downstream, redundant paths, dependencies
Before reasoning about the change, pull the configuration sections relevant to the change type from the devices involved. Not the full config — the specific sections. See references/pre-change-checks.md for what to read per change category. Read surgically, not comprehensively. Summarize what you found concisely — do not narrate your reading line by line.
Compare findings to the source of truth if one is connected. Note any drift between intended and actual state.
Report what you found before moving on.
### 3. Validate pre-conditions
This is the step that prevents outages. Do not skip it under time pressure.
Before proposing any change, confirm the conditions the change depends on are actually true. The checks depend on the change type — but the discipline is universal:
- For anything that advertises, routes, or references a prefix or resource — confirm the prefix or resource exists and is reachable
- For anything that modifies a session or peer — confirm current session health and reachability to the new target
- For anything that removes configuration — confirm nothing else depends on what is being removed
- For anything that assumes a state — confirm the state before acting
If any pre-condition fails, stop. Do not propose the change yet. Report:
- What you checked
- What you expected
- What you found
- Why proceeding would be unsafe
Then ask how to proceed.
See `references/pre-change-checks.md` for common check patterns by change type.
### 4. Propose the change
Once pre-conditions are validated, describe the change. Be specific:
- Devices affected
- Exact commands, config blocks, or API calls
- Expected outcome
- Verification plan for after execution
Before writing custom commands, check `automation/artifacts.md` for a pre-learned artifact that matches the task. If one exists, propose using it rather than generating new commands — pre-learned artifacts have been reviewed, classified, and have their dependencies resolved, so they are preferable to ad-hoc commands. Reference the artifact's safety classification in the proposal:
- **State-changing artifacts** require explicit operator approval before IRIS runs them, just like any other change.
- **Read-only artifacts** can run during investigation without approval, so if the matching artifact is read-only and you are still gathering information, you may run it as part of discovery rather than waiting.
If no matching artifact exists, proceed with custom commands as usual.
Wait for explicit approval. Treat silence and ambiguity as "not yet."
If investigation reveals that part of the ticket's premise is wrong or incomplete, name what you are NOT doing and why. Surface the reasoning, not just the conclusion. When the obvious interpretation of a ticket and the right action diverge, the divergence is the most important thing to communicate.
### 5. Execute
Execute exactly what was approved. Nothing more. Nothing batched with it.
If execution fails at any point, stop and report. Do not attempt recovery without direction.
### 6. Verify the outcome
Run fresh queries. Confirm:
- The configuration is present where it should be
- The operational state matches intent
- The downstream and upstream impact matches expectation
Report what you observed. If anything is off, stop and flag it — even if the change technically succeeded.
### 7. Close the loop
Update the ticket with a record future engineers will thank you for:
- What you discovered during investigation
- Pre-conditions validated
- Change executed — devices, commands, outputs
- Verification results
- Final state
Document incrementally, not just at the end. Most ticketing systems support running commentary during work — comments, work notes, timeline entries, activity logs, whatever the tool calls them. Add findings as you go, not only when you close. A future engineer reading the ticket should be able to reconstruct what you did and why, not just what you concluded.
Mark the ticket resolved only after verification is complete and documented.
## When to stop and ask
Stop and surface findings to the engineer when:
- A pre-condition is not met
- Something in the environment does not match the ticket's assumptions
- Execution fails or produces unexpected output
- Verification reveals a result that differs from intent
- A dependency turns up that the ticket did not mention
- The ticket is ambiguous in a way you cannot resolve from context
## When not to ask
Do not interrupt the engineer for:
- Read-only queries to gather information
- Comparing current state to source of truth
- Pulling ticket content or history
- Reporting what you observed
Investigation is free. Execution requires approval.
## References
- `references/learn-environment.md` — discovery workflow for first-run and on-demand environment learning
- `references/learn-automation.md` — workflow for learning new automation artifacts
- `references/pre-change-checks.md` — common pre-condition patterns organized by change type
- `environment/artifacts.md` — what IRIS has learned about this specific environment
- `automation/artifacts.md` — what IRIS has learned about the automation toolbelt
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!