workspace/skills/fortimanager-ops/SKILL.md
FortiManager policy operations — ADOM inventory, policy package review, recursive object resolution, revision history, install preview, and gated package install. Use when auditing FortiGate firewall policy at the MANAGER level (intent), reviewing ADOM policy packages, or planning a package install with rollback context.
npx skillsauth add automateyournetwork/netclaw fortimanager-opsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
fortinet-mcp (NetClaw-authored, spec 080 / roadmap R3)$FORTINET_MCP_CMDFORTIMANAGER_HOST, FORTIMANAGER_API_TOKENv2.0.0: this skill previously declared
FORTIMANAGER_MCP_CMDpointing atjmpijll/fortimanager-mcp, which was never vendored, never registered and not installable — the skill was a claim with no server behind it. It is now backed byfortinet-mcp, and the command variable changed toFORTINET_MCP_CMDbecause one server serves all three Fortinet planes.
FortiManager holds INTENT. It does not know what a device is actually doing.
| Question | Plane | Skill |
|---|---|---|
| "What policy is supposed to apply here?" | manager | this skill |
| "What is the box actually running? Is the tunnel up?" | device | fortigate-ops |
| "Has anything ever matched this rule?" | analyzer | fortianalyzer-ops |
| "Run a raw FortiOS CLI command" | CLI | multivendor-raw-cli (spec 076) |
A policy package and a FortiGate's running config legitimately diverge between
installs. That gap is where drift, unauthorised change and failed installs live —
use fgt_compare_with_manager to surface it rather than assuming they agree.
| Tool | What it answers |
|---|---|
| fmg_list_adoms | Which ADOMs exist. The ADOM scopes everything else |
| fmg_list_devices | Managed FortiGates, connection and sync status |
| fmg_list_policy_packages | Packages in an ADOM and their install targets |
| fmg_get_policy_package | Ordered rules: position, action, enabled state |
| fmg_search_rules | Rules matching a source, destination, service or object |
| fmg_resolve_object | Object/group → members, resolved recursively |
| fmg_get_revisions | Revision history — rollback context |
| fmg_preview_install | What an install would change. No gate required |
| fmg_check_change_record | Is a ServiceNow CR approved? Read-only |
| fmg_install_package | Production change. Two gates, see below |
{ "plane": "manager", "scope": {"adom": "root", "package": "Corp"},
"source": "...", "outcome": "ok", "data": {...}, "notes": [] }
outcome distinguishes results that look alike: ok, empty_result,
plane_unreachable, auth_expired, auth_missing, scope_indeterminate, and the
three separate write refusals. An expired session is auth_expired, never "no
policies exist" — that would be a silent, plausible, wrong answer.
fmg_list_adoms → pick the ADOM. A package name is unique only within one.fmg_list_policy_packages → find the package and its install targets.fmg_get_policy_package → ordered rules. Note position: shadowing is positional.fmg_resolve_object on every group a rule references. A rule reported only by
object name is not an audit — "allow GRP_CORP to GRP_DMZ" says nothing about
which addresses that permits.fmg_get_revisions → rollback context before proposing any change.fwrule-analyzer for overlap, shadowing and conflict analysis.fmg_get_policy_package — the intent.fgt_compare_with_manager (in fortigate-ops) — the divergence.only_in_device entries are candidate out-of-band changes: someone edited
the firewall directly. This is the single most valuable finding here.only_in_manager usually means the package has not been installed since those
rules were added — check fmg_list_devices sync status.fmg_install_package pushes policy to production firewalls — the highest
blast-radius action available here.
| Condition | Outcome |
|---|---|
| FORTINET_ALLOW_WRITES not set | refused_read_only |
| No approved_by | refused_no_approval |
| No approved ServiceNow CR (non-lab) | refused_no_change_record |
| Both present | proceeds: revision identified → install → verify |
Human approval and a ServiceNow change record are different gates. A CR does not imply a human said yes; a human saying yes does not imply change control approved it. Lab devices waive the CR gate only — never the approval gate — and a device that cannot be classified is treated as production.
Always run fmg_preview_install first. It shows what would change and needs no gate.
| Skill | How they compose |
|---|---|
| fortigate-ops | Device-plane state; fgt_compare_with_manager for drift |
| fortianalyzer-ops | Whether a rule has actually matched traffic |
| fwrule-analyzer | Feed retrieved policy to its FortiOS parser for overlap/shadowing |
| servicenow-change-workflow | Supplies the CR that satisfies gate 2 of fmg_install_package |
| multivendor-raw-cli | Raw FortiOS CLI (spec 076) — a different plane, not a substitute |
| gait-session-tracking | Every operation here is GAIT-audited automatically |
auth_expired is not "no data".tools
Zoom meeting intelligence — correlates a live or referenced Zoom meeting discussion against NetClaw's historical meeting record (via the official Zoom Meetings MCP) and today's actual network state. Use when someone in a Zoom meeting references a past discussion or incident ('didn't we have this issue before?'), or asks to search prior meetings for a topic. Does not itself recognize live in-meeting questions — that happens automatically inside zoom-rtms-mcp's own extractor (spec 118) before this skill is ever invoked.
tools
Manage Lantronix out-of-band (OOB) infrastructure via Percepxion central management platform: device inventory, serial port inspection via SLC CLI, firmware compliance, config management, security auditing, and closed-loop incident remediation. Use during outages, maintenance windows, compliance cycles, and AI-assisted automation workflows.
tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
Track token consumption, enforce session budgets, and display cost for every NetClaw interaction.