Initial commit
This commit is contained in:
11
.claude-plugin/plugin.json
Normal file
11
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"name": "hello-world",
|
||||||
|
"description": "A hello world plugin",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Developer"
|
||||||
|
},
|
||||||
|
"commands": [
|
||||||
|
"./commands"
|
||||||
|
]
|
||||||
|
}
|
||||||
75
commands/echo.md
Normal file
75
commands/echo.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
description: Hello world plugin implementation
|
||||||
|
argument-hint: [name]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Name
|
||||||
|
hello-world:echo
|
||||||
|
|
||||||
|
## Synopsis
|
||||||
|
```
|
||||||
|
/hello-world:echo [name]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Description
|
||||||
|
The `hello-world:echo` command prints a greeting message to the console. By default, it prints "Hello world", but when provided with a name argument `hello-world:echo $1`, it prints "Hello ${1}". This command serves as a basic example of a Claude Code plugin implementation, demonstrating the minimal structure required for a functional plugin command.
|
||||||
|
|
||||||
|
It provides a reference implementation for plugin developers. It demonstrates:
|
||||||
|
- Basic command structure
|
||||||
|
- Shell command execution within a plugin
|
||||||
|
- Handling arguments
|
||||||
|
- Minimal configuration requirements
|
||||||
|
|
||||||
|
The spec sections is inspired by https://man7.org/linux/man-pages/man7/man-pages.7.html#top_of_page
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
- The command executes a simple bash `echo` statement
|
||||||
|
- Accepts an optional name argument (`$1`)
|
||||||
|
- If `$1` is provided, outputs "Hello $1"
|
||||||
|
- If no argument is provided, outputs "Hello world"
|
||||||
|
- Output is sent directly to standard output
|
||||||
|
- The command is stateless and has no side effects
|
||||||
|
|
||||||
|
Implementation logic:
|
||||||
|
```bash
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
echo "Hello $1"
|
||||||
|
else
|
||||||
|
echo "Hello world"
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
## Return Value
|
||||||
|
- **Claude agent text**: "Hello world" (default) or "Hello $1" (when name is provided)
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
1. **Basic usage (no arguments)**:
|
||||||
|
```
|
||||||
|
/hello-world:echo
|
||||||
|
```
|
||||||
|
Output:
|
||||||
|
```
|
||||||
|
Hello world
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **With a name argument**:
|
||||||
|
```
|
||||||
|
/hello-world:echo Alice
|
||||||
|
```
|
||||||
|
Output:
|
||||||
|
```
|
||||||
|
Hello Alice
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **With multiple words as name**:
|
||||||
|
```
|
||||||
|
/hello-world:echo "John Doe"
|
||||||
|
```
|
||||||
|
Output:
|
||||||
|
```
|
||||||
|
Hello John Doe
|
||||||
|
```
|
||||||
|
|
||||||
|
## Arguments:
|
||||||
|
- $1: The name to be printed "Hello ${1}"
|
||||||
45
plugin.lock.json
Normal file
45
plugin.lock.json
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:openshift-eng/ai-helpers:plugins/hello-world",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "f15328bcc343593011bf59baa61cec14c83a6734",
|
||||||
|
"treeHash": "42b9db6657df30e5f61472126c4e8f5fe4e844c9d3bbb314d83fb84ae9b31fb4",
|
||||||
|
"generatedAt": "2025-11-28T10:27:27.726635Z",
|
||||||
|
"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": "hello-world",
|
||||||
|
"description": "A hello world plugin",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "ffd2961880d675e88971d4c2a1d03dc06f76654023da3ffe74bf5d06b242fe8b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "762804ac41f603eaa26be4e38cf88c0d38892ed21ae2b425195523760ba90a74"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/echo.md",
|
||||||
|
"sha256": "a86fc1328b2f49dacdaf14bcf5e01d75b7b2e8aac30061945ffb4797e421a6ef"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "42b9db6657df30e5f61472126c4e8f5fe4e844c9d3bbb314d83fb84ae9b31fb4"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user