Infrahub Menu Creator
SkillDev toolsCreates Infrahub custom navigation menus for the web UI sidebar, organizing node types into logical groups. TRIGGER when: designing sidebar menus, grouping node types in UI, customizing Infrahub web interface navigation. DO NOT TRIGGER when: designing schemas, writing checks or transforms, populating data objects.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Infrahub Menu Creator skill
What this skill tells your AI
The instructions your AI receives, as published by opsmill/infrahub-skills in skills/infrahub-managing-menus/SKILL.md and read by ahel’s review.
Overview
Expert guidance for creating Infrahub custom menus. Menus control the left-side navigation in the web interface, organizing schema node types into a custom hierarchy.
Project Context
Existing menu files:
!find . -name "*.yml" -path "*/menus/*" 2>/dev/null | head -10
Schema files (to identify available node types):
!find . -name "*.yml" -path "*/schemas/*" -o -name "*schema*" -name "*.yml" 2>/dev/null | head -10
When to Use
- Designing navigation menus for the Infrahub web UI
- Organizing node types into logical groups and hierarchies
- Adding icons and labels to menu items
- Setting up group headers (non-clickable) with nested children
- Configuring schema nodes to use custom menus instead of auto-generated ones
Rule Categories
| Priority | Category | Prefix | Description |
|---|---|---|---|
| CRITICAL | Format | format- | apiVersion, kind, spec |
| CRITICAL | Properties | item- | name, namespace, label, kind |
| HIGH | Hierarchy | hierarchy- | Nesting, group headers, data |
| HIGH | Icons | icons- | MDI icon reference, choices |
| MEDIUM | Schema | schema- | include_in_menu, kind links |
| LOW | Patterns | patterns- | Flat menu, comments, links |
Schema Features This Skill Depends On
A custom menu doesn't replace the auto-menu — it augments it. Schemas need cooperating settings to avoid duplicates and stay UI-stable.
| If the menu item... | The schema must... | See |
|---|---|---|
Links to a schema node's list view via kind: | Define that node (or generic) so the URL resolves — and set include_in_menu: false on it to suppress the duplicate auto-menu entry | rules/schema-integration.md |
| Shows all subtypes under one entry via a generic kind | Have the generic defined, with all the relevant nodes inherit_from it | ../infrahub-managing-schemas/rules/hierarchy-setup.md |
| Should appear at a specific position when auto-menu is in play | Set order_weight on the schema node (auto-menu uses it; custom menu ignores it) | ../infrahub-managing-schemas/rules/display-order-weight.md |
| Groups subtypes under a parent node entry | Set menu_placement: <FullKind> on each subtype so the auto-menu side groups consistently with the custom menu | ../infrahub-managing-schemas/rules/display-menu-placement.md |
Audit include_in_menu on every node you reference
from the menu file — the sidebar duplicates that
this prevents look to users like the custom menu is
"broken", but the fix is on the schema side.
Menu File Basics
---
apiVersion: infrahub.app/v1
kind: Menu
spec:
data:
- namespace: Dcim
name: DeviceMenu
label: "Devices"
icon: "mdi:server"
kind: DcimDevice # Links to schema node list view
apiVersion, kind: Menu, and spec.data are always
required. Each menu item needs name and namespace.
Workflow
Follow these steps when creating a menu:
-
Gather requirements — Ask what schema nodes exist, how they should be grouped, and whether the user wants flat or hierarchical navigation.
-
Read relevant rules — Read
rules/format-structure.mdfor the required YAML structure,rules/item-properties.mdfor item fields, andrules/hierarchy-nesting.mdif nesting is needed. Readrules/icons-reference.mdto pick appropriate MDI icons. -
Generate the menu YAML — Start with the
$schemacomment andapiVersion/kind/specstructure. Apply rules from step 2. -
Add registration and schema guidance — Every menu file output must include:
- A YAML comment block showing how to register
the file in
.infrahub.ymlunder themenus:key (seerules/format-structure.md) - A YAML comment block advising to set
include_in_menu: falseon every schema node that appears in the custom menu, to prevent duplicate sidebar entries (seerules/schema-integration.md)
Include these as comments at the top of the file, before the
---document separator. This ensures the user sees the guidance alongside the menu definition. - A YAML comment block showing how to register
the file in
Supporting References
- examples.md -- Four worked menu hierarchies (flat, grouped, generic-linked, full multi-domain) ready to copy and adapt
- infrahub-yml-reference.md -- .infrahub.yml project configuration
- common/rules/ -- Shared rules (git integration, caching gotchas) that apply across all skills
- ../infrahub-common/rules/workflow-information-priority.md
-- Skill content first; how to consult
docs.infrahub.appon a genuine gap (e.g. deleting nodes) - managing-schemas -- Schema node kinds that menus link to
- rules/ -- Individual rules organized by category prefix
Signals
- GitHub stars
- 26
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
infrahub-managing-menus- Source
- github.com/opsmill/infrahub-skills