Skip to content

Commit 75f2a90

Browse files
committed
docs: add auto_start param, expand skill development guide
- Add auto_start boolean to YOLO 2026 config.yaml - Expand skill-development.md: config.yaml schema format, deploy.sh, environment variables, skills.json registration, status values
1 parent 2201f22 commit 75f2a90

2 files changed

Lines changed: 107 additions & 1 deletion

File tree

docs/skill-development.md

Lines changed: 101 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ A skill is a self-contained folder that provides an AI capability to [SharpAI Ae
1111
```
1212
skills/<category>/<skill-name>/
1313
├── SKILL.md # Manifest + setup instructions
14-
├── requirements.txt # Python dependencies
14+
├── config.yaml # Configuration schema for Aegis UI
15+
├── deploy.sh # Zero-assumption installer
16+
├── requirements.txt # Default Python dependencies
17+
├── requirements_cuda.txt # NVIDIA GPU dependencies
18+
├── requirements_rocm.txt # AMD GPU dependencies
19+
├── requirements_mps.txt # Apple Silicon dependencies
20+
├── requirements_cpu.txt # CPU-only dependencies
1521
├── scripts/
1622
│ └── main.py # Entry point
1723
├── assets/
@@ -68,6 +74,70 @@ LLM agent can read and execute.
6874
| `url` | URL input with validation | Server address |
6975
| `camera_select` | Camera picker | Target cameras |
7076

77+
## config.yaml — Configuration Schema
78+
79+
Defines user-configurable options shown in the Aegis Skills UI. Parsed by `parseConfigYaml()`.
80+
81+
```yaml
82+
params:
83+
- key: auto_start
84+
label: Auto Start
85+
type: boolean
86+
default: false
87+
description: "Start automatically on Aegis launch"
88+
89+
- key: model_size
90+
label: Model Size
91+
type: select
92+
default: nano
93+
description: "Choose model variant"
94+
options:
95+
- { value: nano, label: "Nano (fastest)" }
96+
- { value: small, label: "Small (balanced)" }
97+
98+
- key: confidence
99+
label: Confidence
100+
type: number
101+
default: 0.5
102+
description: "Min confidence (0.1–1.0)"
103+
```
104+
105+
### Reserved Keys
106+
107+
| Key | Type | Behavior |
108+
|-----|------|----------|
109+
| `auto_start` | boolean | Aegis auto-starts the skill on boot when `true` |
110+
111+
## deploy.sh — Zero-Assumption Installer
112+
113+
Bootstraps the environment from scratch. Must handle:
114+
115+
1. **Find Python** — check system → conda → pyenv
116+
2. **Create venv** — isolated `.venv/` inside skill directory
117+
3. **Detect GPU** — CUDA → ROCm → MPS → CPU fallback
118+
4. **Install deps** — from matching `requirements_<backend>.txt`
119+
5. **Verify** — import test
120+
121+
Emit JSONL progress for Aegis UI:
122+
```bash
123+
echo '{"event": "progress", "stage": "gpu", "backend": "mps"}'
124+
echo '{"event": "complete", "backend": "mps", "message": "Installed!"}'
125+
```
126+
127+
## Environment Variables
128+
129+
Aegis injects these into every skill process:
130+
131+
| Variable | Description |
132+
|----------|-------------|
133+
| `AEGIS_SKILL_ID` | Skill identifier |
134+
| `AEGIS_SKILL_PARAMS` | JSON string of user config values |
135+
| `AEGIS_GATEWAY_URL` | LLM gateway URL |
136+
| `AEGIS_VLM_URL` | VLM server URL |
137+
| `AEGIS_LLM_MODEL` | Active LLM model name |
138+
| `AEGIS_VLM_MODEL` | Active VLM model name |
139+
| `PYTHONUNBUFFERED` | Set to `1` for real-time output |
140+
71141
## JSON Lines Protocol
72142

73143
Scripts communicate with Aegis via stdin/stdout. Each line is a JSON object.
@@ -108,6 +178,36 @@ Scripts communicate with Aegis via stdin/stdout. Each line is a JSON object.
108178
echo '{"event": "frame", "camera_id": "test", "frame_path": "/tmp/test.jpg"}' | python scripts/main.py
109179
```
110180

181+
## skills.json — Catalog Registration
182+
183+
Register skills in the repo root `skills.json`:
184+
185+
```json
186+
{
187+
"skills": [
188+
{
189+
"id": "my-skill",
190+
"name": "My Skill",
191+
"description": "What it does",
192+
"category": "detection",
193+
"tags": ["tag1"],
194+
"path": "skills/detection/my-skill",
195+
"status": "testing",
196+
"platforms": ["darwin-arm64", "linux-x64"]
197+
}
198+
]
199+
}
200+
```
201+
202+
### Status Values
203+
204+
| Status | Emoji | Meaning |
205+
|--------|-------|---------|
206+
| `ready` | ✅ | Production-quality, tested |
207+
| `testing` | 🧪 | Functional, needs validation |
208+
| `experimental` | ⚗️ | Proof of concept |
209+
| `planned` | 📐 | Not yet implemented |
210+
111211
## Reference
112212

113213
See [`skills/detection/yolo-detection-2026/`](../skills/detection/yolo-detection-2026/) for a complete working example.

skills/detection/yolo-detection-2026/config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
# Format: params[] with key, type, label, default, description, options
44

55
params:
6+
- key: auto_start
7+
label: Auto Start
8+
type: boolean
9+
default: false
10+
description: "Start this skill automatically when Aegis launches"
11+
612
- key: model_size
713
label: Model Size
814
type: select

0 commit comments

Comments
 (0)