ci-discovery
Skill41 starsChanged 6 days agoApache-2.0View on GitHub
Configuration Item discovery, classification, and CMDB population strategies
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 8 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
When to use: When populating or maintaining the CMDB, onboarding new infrastructure, or validating CI data.
- Distinctive: line 87
Before adding new CIs, check what exists:
- Distinctive: line 209
Ensure data quality with validation queries:
- Distinctive: line 237
Update CI status as things change:
- Distinctive: line 286
Standardize Naming: Follow consistent naming conventions
- Distinctive: line 297
Solution: Check sys_class_name and ensure required fields are populated
- Distinctive: line 302
Solution: Use identification rules; merge or retire duplicates
- Distinctive: line 307
Solution: Verify relationship type supports the parent/child classes
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Configuration Item Discovery
Overview
Configuration Items (CIs) are the foundation of the CMDB. This skill covers:
- Understanding the CI class hierarchy
- Discovering and classifying CIs
- Creating CIs manually when automated discovery isn't available
- Maintaining CI data quality
- Establishing CI relationships
When to use: When populating or maintaining the CMDB, onboarding new infrastructure, or validating CI data.
Prerequisites
- Roles:
cmdb_adminoritilwith CMDB write access - Access: CMDB tables (cmdb_ci and subclasses)
- Knowledge: CMDB class structure, CI attributes
Procedure
Step 1: Understand the CI Class Hierarchy
The CMDB uses inheritance. All CIs extend from cmdb_ci:
cmdb_ci (Base CI)
├── cmdb_ci_computer
│ ├── cmdb_ci_server
│ │ ├── cmdb_ci_win_server
│ │ ├── cmdb_ci_linux_server
│ │ └── cmdb_ci_unix_server
│ └── cmdb_ci_pc_hardware
│ ├── cmdb_ci_computer_win
│ └── cmdb_ci_computer_mac
├── cmdb_ci_service
│ ├── cmdb_ci_service_auto
│ └── cmdb_ci_service_manual
├── cmdb_ci_appl
│ ├── cmdb_ci_app_server
│ └── cmdb_ci_database_instance
├── cmdb_ci_network_gear
│ ├── cmdb_ci_netgear
│ └── cmdb_ci_ip_router
└── cmdb_ci_storage_deviceDiscover available CI classes:
Tool: SN-Query-Table
Parameters:
table_name: sys_db_object
query: nameLIKEcmdb_ci^super_class.name=cmdb_ci
fields: name,label,super_class
limit: 50Step 2: Query Existing CIs
Before adding new CIs, check what exists:
Using MCP:
Tool: SN-List-CmdbCis
Parameters:
ci_class: cmdb_ci_server
query: operational_status=1
fields: name,ip_address,os,sys_class_name
limit: 100Search by name:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci
query: nameLIKEweb-server
fields: sys_id,name,sys_class_name,operational_statusStep 3: Create New CIs
Manual CI Creation (when discovery isn't available):
Tool: SN-Create-Record
Parameters:
table_name: cmdb_ci_linux_server
data:
name: "prod-web-01"
ip_address: "10.0.1.100"
dns_domain: "corp.company.com"
fqdn: "prod-web-01.corp.company.com"
os: "Red Hat Enterprise Linux"
os_version: "8.5"
cpu_count: 8
ram: 32768
disk_space: 500
serial_number: "SN12345678"
asset_tag: "ASSET-001"
operational_status: 1
install_status: 1
environment: Production
location: [location_sys_id]
department: [department_sys_id]
support_group: [group_sys_id]
managed_by: [user_sys_id]
comments: "Production web server - Node 1"CI Attribute Reference:
| Attribute | Description | Example |
| name | CI display name | prod-web-01 |
| ip_address | Primary IP | 10.0.1.100 |
| fqdn | Fully qualified domain name | prod-web-01.corp.com |
| operational_status | 1=Operational, 2=Non-Op | 1 |
| install_status | 1=Installed, 7=Retired | 1 |
| environment | Production/Test/Dev | Production |
| support_group | Supporting team | Linux Admins |
Step 4: Classify CIs Properly
Choose the most specific class that fits:
Decision Tree:
Is it hardware?
├── Yes → Is it a computer?
│ ├── Yes → Server or Workstation?
│ │ ├── Server → What OS? → cmdb_ci_win_server / cmdb_ci_linux_server
│ │ └── Workstation → cmdb_ci_pc_hardware
│ └── No → Network gear? Storage? → cmdb_ci_netgear / cmdb_ci_storage
└── No → Is it software?
├── Application → cmdb_ci_appl
├── Database → cmdb_ci_database_instance
└── Service → cmdb_ci_serviceGet class schema to understand attributes:
Tool: SN-Discover-Table-Schema
Parameters:
table_name: cmdb_ci_linux_serverStep 5: Establish CI Relationships
CIs don't exist in isolation. Define relationships:
Relationship Types:
| Type | Description | Example |
| Runs on | Software on hardware | App runs on Server |
| Depends on | Service dependency | Web depends on DB |
| Contains | Physical containment | Rack contains Server |
| Owned by | Ownership | Server owned by Team |
Create Relationship:
Tool: SN-Create-Record
Parameters:
table_name: cmdb_rel_ci
data:
parent: [parent_ci_sys_id]
child: [child_ci_sys_id]
type: [relationship_type_sys_id]Find relationship types:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_rel_type
fields: sys_id,name,parent_descriptor,child_descriptor
limit: 50Step 6: Validate CI Data
Ensure data quality with validation queries:
Find CIs missing required data:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_server
query: ip_addressISEMPTY^operational_status=1
fields: name,sys_class_name,support_groupFind duplicate CIs:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci
query: nameLIKEserver-name
fields: sys_id,name,ip_address,sys_created_onCheck orphan CIs (no relationships):
# Query CIs not in any relationship
# This requires a more complex query or scriptStep 7: Maintain CI Lifecycle
Update CI status as things change:
Operational Status Values:
| Value | Status | When to Use |
| 1 | Operational | CI is functioning normally |
| 2 | Non-Operational | CI is down/broken |
| 3 | Repair in Progress | Being fixed |
| 4 | DR Standby | Disaster recovery standby |
| 6 | Retired | No longer in use |
Update CI Status:
Tool: SN-Update-Record
Parameters:
table_name: cmdb_ci_server
sys_id: [ci_sys_id]
data:
operational_status: 6
install_status: 7
decommissioned: true
comments: "Decommissioned per CHG0012345 on 2026-02-06"CI Data Quality Checklist
- Name follows naming convention
- IP address is accurate and unique
- Serial number recorded (for hardware)
- Support group assigned
- Location specified
- Environment set (Prod/Test/Dev)
- Relationships defined
- Operational status current
- Discovery source documented
Tool Usage Summary
| Operation | MCP Tool | REST Endpoint |
| Query CIs | SN-Query-Table, SN-List-CmdbCis | GET /cmdb_ci |
| Create CI | SN-Create-Record | POST /cmdb_ci_* |
| Update CI | SN-Update-Record | PATCH /cmdb_ci/{id} |
| Get Schema | SN-Discover-Table-Schema | GET /sys_dictionary |
| Relationships | SN-Create-Record | POST /cmdb_rel_ci |
Best Practices
- Use Most Specific Class: cmdb_ci_linux_server, not cmdb_ci_server
- Standardize Naming: Follow consistent naming conventions
- Link to Assets: Connect CIs to asset records when applicable
- Document Sources: Note whether CI was discovered or manually created
- Regular Audits: Periodically validate CI data accuracy
- Relationship Completeness: CIs should have at least one relationship
Troubleshooting
CI Not Appearing in Reports
Cause: Wrong class or missing attributes Solution: Check sys_class_name and ensure required fields are populated
Duplicate CIs
Cause: Multiple discovery sources or manual duplicates Solution: Use identification rules; merge or retire duplicates
Relationships Not Showing
Cause: Relationship type not valid for CI classes Solution: Verify relationship type supports the parent/child classes
Related Skills
cmdb/relationship-mapping- Deep dive into relationshipscmdb/impact-analysis- Using CMDB for impact analysiscmdb/service-graph-diagnosis- Diagnose discovery and service graph gapsitsm/change-management- CI changes during changes
References
In this repository184 other files it gives its agents.
- happy-platform-skillsSkill
- application-scopeSkill
- batch-operationsSkill
- configuration-validationSkill
- deployment-workflowSkill
- generic-crud-operationsSkill
- instance-managementSkill
- schema-discoverySkill
- script-executionSkill
- script-syncSkill
- smart-assessmentSkill
- task-analysisSkill
- task-summarizationSkill
- update-set-managementSkill
- user-provisioningSkill
- workflow-creationSkill
- workspace-insightsSkill
- approval-summarizationSkill
- approval-workflowsSkill
- catalog-builder-aiSkill
- catalog-item-generationSkill
- item-creationSkill
- multi-turn-orderingSkill
- request-fulfillmentSkill
- ui-policiesSkill
- variable-managementSkill
- cmdb-search-analysisSkill
- data-qualitySkill
- impact-analysisSkill
- relationship-mappingSkill
- service-graph-diagnosisSkill
- activity-responseSkill
- csm-case-summarizationSkill
- chat-recommendationSkill
- email-recommendationSkill
- csm-kb-generationSkill
- resolution-notesSkill
- csm-sentiment-analysisSkill
- csm-sidebar-summarizationSkill
- csm-suggested-stepsSkill
- trending-topicsSkill
- automated-testingSkill
- business-rulesSkill
- client-scriptsSkill
- code-assistSkill
- code-reviewSkill
- data-importSkill
- debugging-techniquesSkill
- fluent-sdkSkill
- glide-api-referenceSkill
- mcp-server-installationSkill
- mcp-serverSkill
- notificationsSkill
- performance-optimizationSkill
- scheduled-jobsSkill
- scripted-rest-apisSkill
- script-includesSkill
- servicenow-docs-mcpSkill
- test-generationSkill
- ui-actionsSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

