commit bf844936616b9669d766176393a7e301ab2f00af Author: Zhongwei Li Date: Sun Nov 30 09:01:38 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..24e9f06 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,18 @@ +{ + "name": "telecom-ops", + "description": "O-RAN/Nephio demo plugin (commands, agent, hooks, MCP stub).", + "version": "0.0.0-2025.11.28", + "author": { + "name": "thc1006", + "email": "zhongweili@tubi.tv" + }, + "agents": [ + "./agents" + ], + "commands": [ + "./commands" + ], + "hooks": [ + "./hooks" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..df318de --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# telecom-ops + +O-RAN/Nephio demo plugin (commands, agent, hooks, MCP stub). diff --git a/agents/intent-translator.md b/agents/intent-translator.md new file mode 100644 index 0000000..eb0034d --- /dev/null +++ b/agents/intent-translator.md @@ -0,0 +1,16 @@ +--- +name: intent-translator +description: Converts natural-language service intents into Nephio-compatible Kubernetes resource manifests. +tools: NotebookRead, TodoWrite +model: haiku +color: blue +--- + +You are an expert telecom engineer and Kubernetes operator. Your role is to convert high-level O-RAN service intents into concrete Nephio configuration manifests. When invoked, analyse the provided intent, derive the required parameters such as bandwidth, latency, reliability and geographic coverage, and map these to appropriate S-NSSAI and NSST values. Then describe the YAML resources that should be created (for example, `QoSIntent`, `NetworkSlice` and KRM package directories) and explain how they integrate with a GitOps workflow. + +## Capabilities + +- **Intent analysis**: Identify key parameters in free-form text such as bandwidth, latency and reliability requirements. +- **Mapping to specifications**: Map extracted parameters to S-NSSAI values and choose appropriate network slice templates. +- **Manifest generation guidance**: Outline the structure of the KRM package, including which YAML files to create and what fields to populate. +- **GitOps integration**: Advise on how to commit the generated package to a Git repository for Porch/ConfigSync automation. \ No newline at end of file diff --git a/commands/intent-parse.md b/commands/intent-parse.md new file mode 100644 index 0000000..2fdb88a --- /dev/null +++ b/commands/intent-parse.md @@ -0,0 +1,10 @@ +--- +description: Parse network slice intent into QoS parameters and generate a KRM package skeleton. +argument-hint: "Required: intent description; Optional: bandwidth and latency constraints" +--- + +# Intent Parse + +The **Intent Parse** command translates a high-level service intent into a Nephio-compliant configuration package. When a user provides a natural-language description of a desired network slice (for example, "deploy a URLLC slice with 5 Mbps bandwidth and <10 ms latency"), this command extracts key parameters such as bandwidth, latency and reliability. It then maps those values to standard S-NSSAI and NSST identifiers and produces a set of starter YAML manifests (like `QoSIntent` and `NetworkSlice` objects) that can be committed into your GitOps workflow. + +Use this command when you want to rapidly bootstrap a slice deployment from an intent without manually writing Kubernetes resource manifests. \ No newline at end of file diff --git a/commands/o2-status.md b/commands/o2-status.md new file mode 100644 index 0000000..50409a9 --- /dev/null +++ b/commands/o2-status.md @@ -0,0 +1,8 @@ +--- +description: Query the O2-IMS inventory and status for a given site. +argument-hint: "Optional: site identifier (defaults to all sites)" +--- + +# O2 Status + +The **O2 Status** command queries your O2 inventory management system to retrieve the current health and capacity information for one or more sites. Provide a site name such as `edge01` to filter results; if omitted the command returns a summary for all known sites. The output includes metrics like CPU and memory utilisation, network throughput, alarms and any resource outages, helping operators monitor their distributed edge infrastructure. \ No newline at end of file diff --git a/hooks/hooks.json b/hooks/hooks.json new file mode 100644 index 0000000..1ba278f --- /dev/null +++ b/hooks/hooks.json @@ -0,0 +1,15 @@ +{ + "hooks": { + "PostToolUse": [ + { + "matcher": "*", + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/kpt-render.sh" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..d4ba26d --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,57 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:thc1006/telecom-ops-claude-code-plugins:telecom-ops", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "23dfd1102325ec843192dbd702ed6772dcaad6b7", + "treeHash": "d3a5ca250400d3adbb09a912facfd4a86aa4448668d088819253aa3373527df2", + "generatedAt": "2025-11-28T10:28:39.483864Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "telecom-ops", + "description": "O-RAN/Nephio demo plugin (commands, agent, hooks, MCP stub).", + "version": null + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "9e096c153216fcb27de57e23bb6d279674695a30350ef6d0ec56a6ccc7601bde" + }, + { + "path": "agents/intent-translator.md", + "sha256": "11c843e1405a701b48e2e476cdbc2677ad02b8a1e13e5489529037a376f05c91" + }, + { + "path": "hooks/hooks.json", + "sha256": "6e39eddc53e8b75225d59a89ad585770677eda7c2f09f7d9ce24ec440c8edb42" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "cabd10b3b69c22fa1e9322439323571711b18b14358150f66a348add2fb9db12" + }, + { + "path": "commands/intent-parse.md", + "sha256": "df26c7da2b49bcbd34478b14e1aeb0f5f9a6597525e52f9f8a330392c7e28d41" + }, + { + "path": "commands/o2-status.md", + "sha256": "571bea807fe94c44f391e96de3611e84c77dd9759b7302b8a188e12a5522c94b" + } + ], + "dirSha256": "d3a5ca250400d3adbb09a912facfd4a86aa4448668d088819253aa3373527df2" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file