velaclaw-dev 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.gitignore +14 -0
  2. package/ARCHITECTURE.md +143 -0
  3. package/README.dev.md +208 -0
  4. package/README.local-before-remote-sync.md +224 -0
  5. package/README.md +211 -0
  6. package/README.public.md +115 -0
  7. package/RELEASING.md +162 -0
  8. package/TESTING.md +195 -0
  9. package/dist/cli.js +213 -0
  10. package/dist/data.js +2988 -0
  11. package/dist/server.js +1020 -0
  12. package/dist/ui.js +1486 -0
  13. package/members/LAUNCH_CHECKLIST.md +13 -0
  14. package/members/README.md +17 -0
  15. package/members/member-template/README.md +9 -0
  16. package/members/member-template/private-docs/README.md +3 -0
  17. package/members/member-template/private-memory/README.md +3 -0
  18. package/members/member-template/private-skills/README.md +4 -0
  19. package/members/member-template/private-tools/README.md +4 -0
  20. package/members/member-template/runtime/config/README.md +3 -0
  21. package/members/member-template/runtime/config/local-plugins/member-quota-guard/index.js +123 -0
  22. package/members/member-template/runtime/config/local-plugins/member-quota-guard/openclaw.plugin.json +19 -0
  23. package/members/member-template/runtime/config/local-plugins/member-quota-guard/package.json +10 -0
  24. package/members/member-template/runtime/config/local-plugins/member-runtime-upgrader/index.js +97 -0
  25. package/members/member-template/runtime/config/local-plugins/member-runtime-upgrader/openclaw.plugin.json +21 -0
  26. package/members/member-template/runtime/config/local-plugins/member-runtime-upgrader/package.json +10 -0
  27. package/members/member-template/runtime/config/local-plugins/shared-asset-injector/index.js +548 -0
  28. package/members/member-template/runtime/config/local-plugins/shared-asset-injector/openclaw.plugin.json +33 -0
  29. package/members/member-template/runtime/config/local-plugins/shared-asset-injector/package.json +10 -0
  30. package/members/member-template/runtime/config/openclaw.json +104 -0
  31. package/members/member-template/runtime/docker-compose.yml +53 -0
  32. package/members/member-template/runtime/logs/README.md +3 -0
  33. package/members/member-template/runtime/secrets/.gitkeep +1 -0
  34. package/members/member-template/runtime/secrets/README.md +3 -0
  35. package/members/member-template/runtime/workspace/.gitkeep +1 -0
  36. package/members/member-template/runtime/workspace/README.md +3 -0
  37. package/package.json +57 -0
  38. package/pic/banner.jpg +0 -0
  39. package/provision-member.md +87 -0
  40. package/scripts/shared-asset-stack-test.mjs +369 -0
  41. package/scripts/shared-skill-combo-test.mjs +282 -0
  42. package/scripts/team-load-test.mjs +358 -0
  43. package/scripts/verify-install.mjs +44 -0
  44. package/services/litellm/config.yaml +35 -0
  45. package/services/litellm/docker-compose.yml +36 -0
  46. package/services/litellm/litellm.env.example +13 -0
  47. package/shared-snapshots/README.md +16 -0
  48. package/shared-snapshots/docs/README.md +3 -0
  49. package/shared-snapshots/memory/README.md +3 -0
  50. package/shared-snapshots/skills/README.md +3 -0
  51. package/shared-snapshots/tools/README.md +4 -0
  52. package/shared-snapshots/workflows/README.md +3 -0
  53. package/team-assets/README.md +11 -0
  54. package/team-assets/policies/README.md +7 -0
  55. package/team-assets/policies/asset-visibility.md +24 -0
  56. package/team-assets/policies/high-risk-action-approval.md +18 -0
  57. package/team-assets/policies/promotion-rules.md +25 -0
  58. package/team-assets/policies/tool-binding-rules.md +26 -0
  59. package/team-assets/shared-docs/README.md +3 -0
  60. package/team-assets/shared-memory/README.md +8 -0
  61. package/team-assets/shared-skills/README.md +8 -0
  62. package/team-assets/shared-tools/README.md +8 -0
  63. package/team-assets/shared-workflows/README.md +9 -0
package/README.md ADDED
@@ -0,0 +1,211 @@
1
+ <p align="center">
2
+ <img src="pic/banner.jpg" alt="Velaclaw — The control plane for team AI" width="100%" />
3
+ </p>
4
+
5
+ <h1 align="center">Velaclaw</h1>
6
+
7
+ <p align="center">
8
+ <strong>The control plane for team AI.</strong><br/>
9
+ <sub>Shared intelligence. Isolated runtimes. Governed by design.</sub>
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="#-quick-start">Quick Start</a> ·
14
+ <a href="#-core-capabilities">Core Capabilities</a> ·
15
+ <a href="#-architecture">Architecture</a> ·
16
+ <a href="#-roadmap">Roadmap</a>
17
+ </p>
18
+
19
+ <p align="center">
20
+ <img alt="Status" src="https://img.shields.io/badge/status-early--access-orange" />
21
+ <img alt="Runtime" src="https://img.shields.io/badge/runtime-Docker-blue" />
22
+ <img alt="Built on" src="https://img.shields.io/badge/built%20on-OpenClaw-black" />
23
+ <img alt="License" src="https://img.shields.io/badge/license-MIT-green" />
24
+ </p>
25
+
26
+ ---
27
+
28
+ > Your team is already using AI.
29
+ > The question isn't whether — it's **who's in control.**
30
+
31
+ Velaclaw is the answer: **one control plane** governing every AI runtime on your team.
32
+ Team assets stay with the team. Member assets stay with the member. High-risk actions go through approval.
33
+ **Runs on a single machine. Today.**
34
+
35
+ ---
36
+
37
+ ## 🧩 Core Capabilities
38
+
39
+ <table>
40
+ <tr>
41
+ <td width="50%" valign="top">
42
+
43
+ ### 🎛️ Control-Plane First
44
+
45
+ The host is the coordination layer. Team policies, shared assets, and approval decisions live in **one place** instead of being scattered across individual chat windows.
46
+
47
+ </td>
48
+ <td width="50%" valign="top">
49
+
50
+ ### 📦 Isolated Member Runtimes
51
+
52
+ One Docker container per member. No host workspace mounts. No Docker socket exposure. **One member crashes — nothing else burns.**
53
+
54
+ </td>
55
+ </tr>
56
+ <tr>
57
+ <td width="50%" valign="top">
58
+
59
+ ### 🔐 Shared vs Private, by Default
60
+
61
+ Velaclaw treats memory, skills, tools, workflows, documents, and bindings as **assets**.
62
+ Some assets belong to the team. Others belong to the member. Team assets can be distributed as read-only snapshots, while member assets stay private by default.
63
+
64
+ Shared assets now follow a governed publication flow:
65
+ - members can submit into `drafts/` or `collab/`
66
+ - untrusted roles require approval before publish
67
+ - trusted publishers can publish without review
68
+ - managers can approve, reject, or promote into the live snapshot
69
+
70
+ </td>
71
+ <td width="50%" valign="top">
72
+
73
+ ### ✅ Approval for High-Risk Actions
74
+
75
+ Write operations, credential access, and cross-member actions do not execute directly. They go through the control plane first. **Approval is part of the system, not an afterthought.**
76
+
77
+ </td>
78
+ </tr>
79
+ </table>
80
+
81
+ ---
82
+
83
+ ## 🏗️ Architecture
84
+
85
+ ```
86
+ ┌─────────────────────────────────────────────────┐
87
+ │ Control Plane (Host) │
88
+ │ │
89
+ │ policies · shared-assets · approvals │
90
+ │ asset-distribution · audit │
91
+ └──────────┬──────────┬──────────┬─────────────────┘
92
+ │ │ │
93
+ ┌─────▼────┐┌────▼─────┐┌──▼───────┐
94
+ │ Member A ││ Member B ││ Member C │
95
+ │ (Docker) ││ (Docker) ││ (Docker) │
96
+ │ ││ ││ │
97
+ │ private ││ private ││ private │
98
+ │ assets ││ assets ││ assets │
99
+ │ runtime ││ runtime ││ runtime │
100
+ │ secrets ││ secrets ││ secrets │
101
+ └──────────┘└──────────┘└──────────┘
102
+ ```
103
+
104
+ > **🛡️ Security boundary**
105
+ > Member containers never mount the host Docker socket, never touch the primary workspace, never access team secrets directly. Team assets are distributed via **read-only snapshots** — no writable shared mounts.
106
+
107
+ ---
108
+
109
+ ## 🚀 Quick Start
110
+
111
+ ```bash
112
+ # 1. Clone the repo
113
+ git clone https://github.com/Zavianx/velaclaw-dev.git
114
+ cd velaclaw-dev
115
+
116
+ # 2. Read the architecture
117
+ cat ARCHITECTURE.md
118
+
119
+ # 3. Provision your first member runtime
120
+ cat provision-member.md
121
+ ```
122
+
123
+ ---
124
+
125
+ ## 📁 Project Structure
126
+
127
+ ```text
128
+ velaclaw-dev/
129
+ ├── ARCHITECTURE.md # Control plane + member runtime design
130
+ ├── provision-member.md # Member runtime provisioning guide
131
+ ├── team-assets/ # System/global shared team asset sources
132
+ │ ├── policies/ # Team policies
133
+ │ ├── shared-memory/ # Shared memory assets
134
+ │ ├── shared-skills/ # Shared skill assets
135
+ │ ├── shared-tools/ # Shared tool assets
136
+ │ ├── shared-workflows/ # Shared workflow assets
137
+ │ └── shared-docs/ # Shared document assets
138
+ ├── members/ # Per-member runtime templates and private assets
139
+ ├── teams/ # Team-scoped governed asset workspaces
140
+ │ └── <slug>/
141
+ │ └── assets/
142
+ │ ├── drafts/
143
+ │ ├── collab/
144
+ │ ├── approvals/
145
+ │ ├── published/
146
+ │ │ └── releases/
147
+ │ └── current/
148
+ ```
149
+
150
+ ---
151
+
152
+ ## 🗺️ Roadmap
153
+
154
+ **Shipped**
155
+ - [x] Control plane + member runtime architecture
156
+ - [x] Team / member asset directory separation
157
+ - [x] Member runtime provisioning flow
158
+ - [x] Read-only snapshot distribution
159
+ - [x] Team-scoped governed asset directories
160
+ - [x] Member proposal -> approval -> publish workflow
161
+ - [x] Direct publish for trusted roles
162
+ - [x] Manager promote / approve / reject controls
163
+
164
+ **Next**
165
+ - [ ] Asset sync API
166
+ - [ ] Rich approval workflow UI
167
+ - [ ] Web Dashboard
168
+ - [ ] Multi-machine deployment
169
+
170
+ ---
171
+
172
+ ## 💡 Why Velaclaw?
173
+
174
+ <table>
175
+ <thead>
176
+ <tr>
177
+ <th width="50%">Today</th>
178
+ <th width="50%">With Velaclaw</th>
179
+ </tr>
180
+ </thead>
181
+ <tbody>
182
+ <tr>
183
+ <td>Everyone runs their own AI — no one knows who did what</td>
184
+ <td><strong>One shared system</strong> for the team to work from</td>
185
+ </tr>
186
+ <tr>
187
+ <td>Team knowledge and workflows are scattered across chat windows</td>
188
+ <td><strong>Shared assets</strong> the team can keep building on together</td>
189
+ </tr>
190
+ <tr>
191
+ <td>AI can touch code, credentials, and files directly</td>
192
+ <td><strong>Isolated runtimes + approval gates</strong> around high-risk actions</td>
193
+ </tr>
194
+ <tr>
195
+ <td>Structure gets added later, if at all</td>
196
+ <td><strong>Assets and boundaries are built in from the start</strong></td>
197
+ </tr>
198
+ </tbody>
199
+ </table>
200
+
201
+ ---
202
+
203
+ <p align="center">
204
+ <strong>Built on <a href="https://github.com/openclaw/openclaw">OpenClaw</a></strong>
205
+ </p>
206
+ <p align="center">
207
+ <em>A better way for teams to work with AI.</em>
208
+ </p>
209
+ <p align="center">
210
+ <sub>Made for teams that take AI seriously.</sub>
211
+ </p>
@@ -0,0 +1,115 @@
1
+ <p align="center">
2
+ <img src="pic/banner.jpg" alt="Velaclaw — A better way for teams to work with AI" width="100%" />
3
+ </p>
4
+
5
+ <h1 align="center">Velaclaw</h1>
6
+
7
+ <p align="center">
8
+ <strong>A better way for teams to work with AI.</strong><br/>
9
+ <sub>Shared where it should be. Private where it must be.</sub>
10
+ </p>
11
+
12
+ <p align="center">
13
+ <img alt="Status" src="https://img.shields.io/badge/status-early--access-orange" />
14
+ <img alt="Runtime" src="https://img.shields.io/badge/runtime-Docker-blue" />
15
+ <img alt="Built on" src="https://img.shields.io/badge/built%20on-OpenClaw-black" />
16
+ </p>
17
+
18
+ ---
19
+
20
+ > Teams are already using AI.
21
+ > Velaclaw gives them a better way to work together.
22
+
23
+ Velaclaw is a system for teams that want to work with AI together without turning everything into one shared trust boundary.
24
+ It brings collaboration, structure, and clear asset boundaries into the same place.
25
+
26
+ ---
27
+
28
+ ## What Velaclaw is
29
+
30
+ Velaclaw is built around three ideas:
31
+
32
+ - **shared assets** the team can build on together
33
+ - **private member runtimes** for work that should stay isolated
34
+ - **approvals and boundaries** for actions that carry real risk
35
+
36
+ In Velaclaw, memory, skills, tools, workflows, documents, and bindings are all treated as **assets**.
37
+ Some belong to the team. Others belong to the member.
38
+
39
+ ---
40
+
41
+ ## Why it exists
42
+
43
+ Most teams already use AI across chat windows, scripts, agents, and tools.
44
+ What they usually do not have is a good shared system around it.
45
+
46
+ Velaclaw is meant to change that.
47
+
48
+ It helps teams:
49
+
50
+ - build on shared assets over time
51
+ - keep member-specific work private where it should be
52
+ - introduce structure without turning collaboration into chaos
53
+ - put approvals around high-risk actions
54
+
55
+ ---
56
+
57
+ ## Core capabilities
58
+
59
+ - **Shared assets** for team memory, skills, tools, workflows, and docs
60
+ - **Private runtimes** for member-specific execution
61
+ - **Read-only asset distribution** for controlled sharing
62
+ - **Approval-aware operations** for higher-risk actions
63
+ - **Docker-based isolation** for practical deployment today
64
+
65
+ ---
66
+
67
+ ## Architecture
68
+
69
+ ```text
70
+ ┌─────────────────────────────────────────────────┐
71
+ │ Control Plane (Host) │
72
+ │ │
73
+ │ policies · shared-assets · approvals │
74
+ │ asset-distribution · audit │
75
+ └──────────┬──────────┬──────────┬─────────────────┘
76
+ │ │ │
77
+ ┌─────▼────┐┌────▼─────┐┌──▼───────┐
78
+ │ Member A ││ Member B ││ Member C │
79
+ │ (Docker) ││ (Docker) ││ (Docker) │
80
+ │ ││ ││ │
81
+ │ private ││ private ││ private │
82
+ │ assets ││ assets ││ assets │
83
+ │ runtime ││ runtime ││ runtime │
84
+ │ secrets ││ secrets ││ secrets │
85
+ └──────────┘└──────────┘└──────────┘
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Current focus
91
+
92
+ Velaclaw is still early.
93
+ Current work is focused on:
94
+
95
+ - control-plane foundations
96
+ - asset modeling
97
+ - isolated member runtimes
98
+ - provisioning flow
99
+ - approval-aware operations
100
+
101
+ ---
102
+
103
+ ## Status
104
+
105
+ Velaclaw is in active development.
106
+ The public repository is intended to communicate the product direction, architecture, and design principles as the system takes shape.
107
+
108
+ ---
109
+
110
+ <p align="center">
111
+ <strong>Built on <a href="https://github.com/openclaw/openclaw">OpenClaw</a></strong>
112
+ </p>
113
+ <p align="center">
114
+ <em>A better way for teams to work with AI.</em>
115
+ </p>
package/RELEASING.md ADDED
@@ -0,0 +1,162 @@
1
+ # Velaclaw Dev Release Flow
2
+
3
+ This is the formal dev-side flow for preparing a testable build for other people.
4
+
5
+ ## 1. Update The Working Tree
6
+
7
+ Before cutting a tester build:
8
+
9
+ ```bash
10
+ git status --short
11
+ npm run build
12
+ ```
13
+
14
+ Do not publish a tester build from a broken tree.
15
+
16
+ ## 2. Bring Up Local Dependencies
17
+
18
+ LiteLLM:
19
+
20
+ ```bash
21
+ docker compose -f services/litellm/docker-compose.yml up -d
22
+ ```
23
+
24
+ Velaclaw:
25
+
26
+ ```bash
27
+ npm run start
28
+ ```
29
+
30
+ ## 3. Run The Minimum Release Checks
31
+
32
+ Required:
33
+
34
+ ```bash
35
+ npm run release:check
36
+ ```
37
+
38
+ Recommended before a real tester cut:
39
+
40
+ ```bash
41
+ npm run smoke:skills
42
+ npm run smoke:assets
43
+ ```
44
+
45
+ Optional for larger drops:
46
+
47
+ ```bash
48
+ npm run load:test-team
49
+ ```
50
+
51
+ ## 4. Check The Outputs
52
+
53
+ You should have:
54
+
55
+ - a healthy control plane on `127.0.0.1:4318`
56
+ - a healthy LiteLLM stack on `127.0.0.1:4000`
57
+ - fresh smoke artifacts in `artifacts/`
58
+
59
+ At minimum, inspect:
60
+
61
+ - latest `shared-skill-combo-test-*.json`
62
+ - latest `shared-asset-stack-test-*.json`
63
+
64
+ ## 5. Sanity Check The Main Team
65
+
66
+ Before handing the build to testers, confirm your real bots were not broken by the release candidate:
67
+
68
+ - `testjjabot`
69
+ - `Erwinyu_bot`
70
+ - `Xiaoananabot`
71
+
72
+ Expected state:
73
+
74
+ - runtime container exists
75
+ - runtime health is `healthy`
76
+ - `/team` still loads
77
+
78
+ ## 6. Publish To npm
79
+
80
+ Public npm:
81
+
82
+ ```bash
83
+ npm login
84
+ npm run publish:npm
85
+ ```
86
+
87
+ GitHub Actions:
88
+
89
+ - workflow: `.github/workflows/publish-npm.yml`
90
+ - required secret: `NPM_TOKEN`
91
+
92
+ ## 7. Publish To A Private Registry
93
+
94
+ Local shell path:
95
+
96
+ ```bash
97
+ npm config set registry <private-registry-url>
98
+ npm config set //<private-registry-host>/:_authToken <token>
99
+ npm run publish:private
100
+ ```
101
+
102
+ GitHub Actions path:
103
+
104
+ - workflow: `.github/workflows/publish-private-registry.yml`
105
+ - required secret: `PRIVATE_NPM_TOKEN`
106
+ - workflow input: `registry_url`
107
+
108
+ ## 8. Publish The Tester Instructions
109
+
110
+ Always ship the published package together with:
111
+
112
+ - [TESTING.md](/home/ubuntu/.openclaw/workspace/velaclaw/TESTING.md)
113
+ - [services/litellm/litellm.env.example](/home/ubuntu/.openclaw/workspace/velaclaw/services/litellm/litellm.env.example)
114
+
115
+ And for the npm path, tell testers to start with:
116
+
117
+ ```bash
118
+ npm install -g velaclaw-dev
119
+ velaclaw init velaclaw-test
120
+ cd velaclaw-test
121
+ ```
122
+
123
+ Do not assume the tester knows:
124
+
125
+ - where LiteLLM secrets live
126
+ - startup order
127
+ - which smoke scripts matter
128
+ - what is intentionally unsupported
129
+
130
+ ## 9. Suggested Release Note Format
131
+
132
+ Use a short note like this:
133
+
134
+ ```text
135
+ Velaclaw Dev Tester Build
136
+
137
+ Included:
138
+ - control plane
139
+ - team/member onboarding
140
+ - shared skills
141
+ - shared memory
142
+ - shared workflows
143
+
144
+ Not included:
145
+ - MCP/server assets
146
+ - multi-host deployment
147
+
148
+ Start here:
149
+ - npm install -g velaclaw-dev
150
+ - velaclaw init velaclaw-test
151
+ - TESTING.md
152
+ ```
153
+
154
+ ## 10. Exit Criteria
155
+
156
+ A tester build is ready only if all of these are true:
157
+
158
+ - `npm run release:check` passes
159
+ - `npm run smoke:skills` passes
160
+ - `npm run smoke:assets` passes
161
+ - latest artifacts exist in `artifacts/`
162
+ - the main team’s member runtimes still come back `healthy`
package/TESTING.md ADDED
@@ -0,0 +1,195 @@
1
+ # Velaclaw Tester Install Guide
2
+
3
+ This guide is the formal path for bringing up a local Velaclaw test environment for external testers.
4
+
5
+ It assumes:
6
+
7
+ - one Linux host
8
+ - Docker Engine + Compose v2
9
+ - Node.js 22+
10
+ - a reachable upstream OpenAI-compatible endpoint for LiteLLM
11
+
12
+ The current supported test scope is:
13
+
14
+ - control plane at `http://127.0.0.1:4318`
15
+ - LiteLLM on `http://127.0.0.1:4000`
16
+ - team creation
17
+ - invite acceptance
18
+ - member runtime provisioning
19
+ - Telegram/Discord member setup
20
+ - shared `skills`, `memory`, and `workflows`
21
+
22
+ Not part of the formal tester flow:
23
+
24
+ - MCP/server assets
25
+ - multi-host deployment
26
+ - production HA setup
27
+
28
+ ## 1. Install The CLI
29
+
30
+ Preferred path:
31
+
32
+ ```bash
33
+ npm install -g velaclaw-dev
34
+ ```
35
+
36
+ Then initialize a local workspace:
37
+
38
+ ```bash
39
+ velaclaw init velaclaw-test
40
+ cd velaclaw-test
41
+ ```
42
+
43
+ If you are testing from a local checkout instead of npm:
44
+
45
+ ```bash
46
+ git clone <your-private-dev-repo-url> velaclaw-dev
47
+ cd velaclaw-dev
48
+ npm install
49
+ npm run build
50
+ ```
51
+
52
+ ## 2. Prerequisites
53
+
54
+ Install:
55
+
56
+ ```bash
57
+ sudo apt-get update
58
+ sudo apt-get install -y git curl jq docker-compose-v2 docker-buildx
59
+ ```
60
+
61
+ Verify:
62
+
63
+ ```bash
64
+ docker compose version
65
+ docker buildx version
66
+ node --version
67
+ npm --version
68
+ ```
69
+
70
+ ## 3. Configure LiteLLM
71
+
72
+ Create the local config directory:
73
+
74
+ ```bash
75
+ mkdir -p ~/.config/velaclaw
76
+ cp services/litellm/litellm.env.example ~/.config/velaclaw/litellm.env
77
+ ```
78
+
79
+ Edit `~/.config/velaclaw/litellm.env` and set:
80
+
81
+ - `POSTGRES_PASSWORD`
82
+ - `DATABASE_URL`
83
+ - `OPENAI_API_KEY`
84
+ - `LITELLM_MASTER_KEY`
85
+
86
+ Expected format:
87
+
88
+ ```dotenv
89
+ POSTGRES_PASSWORD=change-me
90
+ DATABASE_URL=postgresql://litellm:change-me@postgres:5432/litellm
91
+ OPENAI_API_KEY=replace-with-your-upstream-key
92
+ LITELLM_MASTER_KEY=replace-with-a-long-random-secret
93
+ ```
94
+
95
+ Start LiteLLM:
96
+
97
+ ```bash
98
+ docker compose -f services/litellm/docker-compose.yml up -d
99
+ docker ps --format 'table {{.Names}}\t{{.Status}}' | grep velaclaw-litellm
100
+ ```
101
+
102
+ ## 4. Start Velaclaw
103
+
104
+ Run the control plane:
105
+
106
+ ```bash
107
+ velaclaw start
108
+ ```
109
+
110
+ Default port:
111
+
112
+ ```text
113
+ http://127.0.0.1:4318
114
+ ```
115
+
116
+ If you want a different port:
117
+
118
+ ```bash
119
+ velaclaw start --port 4318
120
+ ```
121
+
122
+ ## 5. Verify The Stack
123
+
124
+ Basic verification:
125
+
126
+ ```bash
127
+ velaclaw verify
128
+ ```
129
+
130
+ Manual checks:
131
+
132
+ ```bash
133
+ curl -fsS http://127.0.0.1:4318/health
134
+ curl -fsS http://127.0.0.1:4318/api/teams
135
+ open http://127.0.0.1:4318/team
136
+ ```
137
+
138
+ ## 6. Tester Workflow
139
+
140
+ Recommended manual test path:
141
+
142
+ 1. Open `/team`
143
+ 2. Create a test team
144
+ 3. Create an invite for a test email
145
+ 4. Open `/invite/<code>`
146
+ 5. Accept the invite
147
+ 6. Configure a Telegram or Discord bot on the member page
148
+ 7. Start the member runtime
149
+ 8. Send the bot a message
150
+ 9. Verify the member responds
151
+
152
+ ## 7. Automated Smoke Tests
153
+
154
+ Shared skills:
155
+
156
+ ```bash
157
+ velaclaw smoke skills
158
+ ```
159
+
160
+ Shared skills + memory + workflow:
161
+
162
+ ```bash
163
+ velaclaw smoke assets
164
+ ```
165
+
166
+ Large team control-plane load test:
167
+
168
+ ```bash
169
+ velaclaw smoke load-test
170
+ ```
171
+
172
+ Artifacts are written to:
173
+
174
+ ```text
175
+ artifacts/
176
+ ```
177
+
178
+ ## 8. Current Known Limits
179
+
180
+ - Default stable model path is `gpt-4.1-mini`
181
+ - GPT-5 family support is not the default test path
182
+ - MCP/server assets are intentionally out of scope
183
+ - This guide is for a single-host setup, not a production cluster
184
+
185
+ ## 9. What Testers Should Report
186
+
187
+ Ask testers to include:
188
+
189
+ - host OS and Docker version
190
+ - whether LiteLLM started cleanly
191
+ - whether `/health` and `/api/teams` worked
192
+ - whether invite acceptance succeeded
193
+ - whether member runtime reached `healthy`
194
+ - whether Telegram/Discord messages were answered
195
+ - the exact artifact file if a smoke script was run