rainskills 0.1.41 → 0.1.43
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.
- package/README.md +109 -229
- package/SKILL.md +3 -3
- package/bin/delivery-probe.js +306 -0
- package/bin/handoff-context.js +151 -0
- package/bin/protected-poll.js +116 -0
- package/bin/rainskills-tools.js +132 -8
- package/bin/read-snapshot.js +82 -0
- package/contracts/ai-engine-skills-prerequisites-v1.json +175 -0
- package/contracts/handoff-context.schema.yaml +62 -0
- package/contracts/runtime/cli-base.md +43 -0
- package/contracts/runtime/embedded-base.md +20 -0
- package/contracts/runtime/overlay.schema.json +24 -0
- package/contracts/runtime/routing-modes.yaml +30 -0
- package/contracts/runtime/skills/rainbond-ai-assistant.yaml +13 -0
- package/contracts/runtime/skills/rainbond-app-assistant.yaml +12 -0
- package/contracts/runtime/skills/rainbond-app-version-assistant.yaml +11 -0
- package/contracts/runtime/skills/rainbond-delivery-verifier.yaml +12 -0
- package/contracts/runtime/skills/rainbond-env-sync.yaml +12 -0
- package/contracts/runtime/skills/rainbond-fullstack-bootstrap.yaml +12 -0
- package/contracts/runtime/skills/rainbond-fullstack-troubleshooter.yaml +12 -0
- package/contracts/runtime/skills/rainbond-opensource-app-deploy.yaml +12 -0
- package/contracts/runtime/skills/rainbond-platform-plugin-manager.yaml +12 -0
- package/contracts/runtime/skills/rainbond-platform-query.yaml +12 -0
- package/contracts/runtime/skills/rainbond-project-init.yaml +12 -0
- package/contracts/runtime/skills/rainbond-template-installer.yaml +12 -0
- package/contracts/shared/user-result.md +14 -0
- package/dsh/cordis.patch.yml +6 -0
- package/dsh/index.mjs +73 -0
- package/install.sh +99 -36
- package/marketplace/rainskills/.claude-plugin/plugin.json +1 -1
- package/marketplace/rainskills/.codex-plugin/plugin.json +1 -1
- package/marketplace/rainskills/skills/rainskills/SKILL.md +4 -4
- package/package.json +48 -9
- package/rainbond-ai-assistant/SKILL.md +45 -0
- package/rainbond-ai-assistant/agents/openai.yaml +5 -0
- package/rainbond-ai-assistant/evals/scenarios.yaml +196 -0
- package/rainbond-ai-assistant/references/advanced-vllm-arguments.md +10 -0
- package/rainbond-ai-assistant/references/context-and-permissions.md +9 -0
- package/rainbond-ai-assistant/references/cpu-deployment.md +22 -0
- package/rainbond-ai-assistant/references/deletion-policy.md +8 -0
- package/rainbond-ai-assistant/references/deployment-diagnostics.md +18 -0
- package/rainbond-ai-assistant/references/error-recovery.md +17 -0
- package/rainbond-ai-assistant/references/generated/runtime-gate.md +189 -0
- package/rainbond-ai-assistant/references/generated/runtime-routing.md +15 -0
- package/rainbond-ai-assistant/references/generated/user-result.md +16 -0
- package/rainbond-ai-assistant/references/gpu-provider-and-capacity.md +44 -0
- package/rainbond-ai-assistant/references/instance-deployment.md +32 -0
- package/rainbond-ai-assistant/references/instance-lifecycle.md +10 -0
- package/rainbond-ai-assistant/references/model-discovery.md +16 -0
- package/rainbond-ai-assistant/references/model-download.md +31 -0
- package/rainbond-ai-assistant/references/model-selection.md +24 -0
- package/rainbond-ai-assistant/references/output-contract.md +21 -0
- package/rainbond-ai-assistant/references/parameter-decision-guide.md +122 -0
- package/rainbond-ai-assistant/references/throughput-tuning.md +12 -0
- package/rainbond-ai-assistant/schemas/ai-engine-result.schema.yaml +85 -0
- package/rainbond-ai-assistant/scripts/validate_ai_engine_output.py +42 -0
- package/rainbond-ai-assistant/scripts/validate_progressive_loading.py +28 -0
- package/rainbond-app-assistant/SKILL.md +9 -5
- package/rainbond-app-assistant/evals/04-delivered-stop-without-promotion.expected.yaml +0 -5
- package/rainbond-app-assistant/evals/04-delivered-stop-without-promotion.response.md +4 -25
- package/rainbond-app-assistant/evals/11-delivered-with-proxy-and-local-binding.expected.yaml +0 -9
- package/rainbond-app-assistant/evals/11-delivered-with-proxy-and-local-binding.response.md +4 -28
- package/rainbond-app-assistant/evals/16-source-delivered-manual-validation.expected.yaml +0 -6
- package/rainbond-app-assistant/evals/16-source-delivered-manual-validation.response.md +4 -23
- package/rainbond-app-assistant/evals/17-local-package-existing-app-needs-init.expected.yaml +26 -0
- package/rainbond-app-assistant/evals/17-local-package-existing-app-needs-init.response.md +46 -0
- package/rainbond-app-assistant/references/generated/runtime-gate.md +227 -0
- package/rainbond-app-assistant/references/generated/runtime-routing.md +29 -0
- package/rainbond-app-assistant/references/generated/user-result.md +16 -0
- package/rainbond-app-assistant/references/local-project-analysis.md +46 -0
- package/rainbond-app-assistant/references/output-contract.md +23 -47
- package/rainbond-app-assistant/references/product-object-model.md +9 -29
- package/rainbond-app-assistant/references/workflow-rules.md +33 -21
- package/rainbond-app-assistant/schemas/generated/handoff-context.schema.yaml +64 -0
- package/rainbond-app-assistant/scripts/validate_app_assistant_output.py +1 -0
- package/rainbond-app-assistant/scripts/validate_cross_skill_routing.py +50 -58
- package/rainbond-app-assistant/scripts/validate_progressive_loading.py +39 -9
- package/rainbond-app-version-assistant/SKILL.md +43 -560
- package/rainbond-app-version-assistant/references/generated/runtime-gate.md +174 -0
- package/rainbond-app-version-assistant/references/generated/runtime-routing.md +15 -0
- package/rainbond-app-version-assistant/references/generated/user-result.md +16 -0
- package/rainbond-app-version-assistant/references/output-contract.md +156 -0
- package/rainbond-app-version-assistant/references/version-operations.md +50 -0
- package/rainbond-app-version-assistant/references/version-workflow.md +168 -0
- package/rainbond-delivery-verifier/SKILL.md +45 -522
- package/rainbond-delivery-verifier/evals/01-delivered-verified.expected.yaml +24 -0
- package/rainbond-delivery-verifier/evals/01-delivered-verified.response.md +21 -1
- package/rainbond-delivery-verifier/evals/02-delivered-manual-validation.response.md +1 -0
- package/rainbond-delivery-verifier/evals/03-partially-delivered-building.response.md +1 -0
- package/rainbond-delivery-verifier/evals/04-blocked-capacity.response.md +1 -0
- package/rainbond-delivery-verifier/evals/05-blocked-no-usable-url.response.md +1 -0
- package/rainbond-delivery-verifier/evals/06-blocked-runtime-unhealthy.response.md +19 -0
- package/rainbond-delivery-verifier/references/delivery-workflow.md +89 -0
- package/rainbond-delivery-verifier/references/generated/runtime-gate.md +242 -0
- package/rainbond-delivery-verifier/references/generated/runtime-routing.md +15 -0
- package/rainbond-delivery-verifier/references/generated/user-result.md +16 -0
- package/rainbond-delivery-verifier/references/output-contract.md +154 -0
- package/rainbond-delivery-verifier/references/verification-rules.md +103 -0
- package/rainbond-delivery-verifier/schemas/delivery-probe-input.schema.yaml +20 -0
- package/rainbond-delivery-verifier/schemas/delivery-probe-policy.schema.yaml +40 -0
- package/rainbond-delivery-verifier/schemas/delivery-probe-result.schema.yaml +82 -0
- package/rainbond-delivery-verifier/schemas/delivery-verification-result.schema.yaml +65 -0
- package/rainbond-delivery-verifier/schemas/generated/handoff-context.schema.yaml +64 -0
- package/rainbond-delivery-verifier/scripts/validate_delivery_verifier_output.py +27 -0
- package/rainbond-env-sync/SKILL.md +42 -617
- package/rainbond-env-sync/evals/db-name-source-cases.yaml +25 -0
- package/rainbond-env-sync/references/generated/runtime-gate.md +175 -0
- package/rainbond-env-sync/references/generated/runtime-routing.md +15 -0
- package/rainbond-env-sync/references/generated/user-result.md +16 -0
- package/rainbond-env-sync/references/output-contract.md +212 -0
- package/rainbond-env-sync/references/sync-policy.md +148 -0
- package/rainbond-env-sync/references/sync-workflow.md +94 -0
- package/rainbond-fullstack-bootstrap/SKILL.md +55 -433
- package/rainbond-fullstack-bootstrap/evals/07-provider-connection-contract.expected.yaml +9 -0
- package/rainbond-fullstack-bootstrap/evals/07-provider-connection-contract.response.md +1 -1
- package/rainbond-fullstack-bootstrap/evals/18-existing-package-update.expected.yaml +28 -0
- package/rainbond-fullstack-bootstrap/evals/18-existing-package-update.prompt.md +1 -0
- package/rainbond-fullstack-bootstrap/evals/18-existing-package-update.response.md +39 -0
- package/rainbond-fullstack-bootstrap/modules/30-creation-rules.md +4 -232
- package/rainbond-fullstack-bootstrap/modules/35-runtime-topology-rules.md +194 -0
- package/rainbond-fullstack-bootstrap/modules/40-source-rules.md +94 -0
- package/rainbond-fullstack-bootstrap/modules/42-source-topology.md +70 -0
- package/rainbond-fullstack-bootstrap/modules/44-source-build-rules.md +55 -0
- package/rainbond-fullstack-bootstrap/modules/45-package-rules.md +83 -0
- package/rainbond-fullstack-bootstrap/modules/50-workflow.md +135 -0
- package/rainbond-fullstack-bootstrap/modules/55-convergence-rules.md +93 -0
- package/rainbond-fullstack-bootstrap/modules/60-verification-and-handoffs.md +1 -1
- package/rainbond-fullstack-bootstrap/modules/70-output-contract.md +2 -0
- package/rainbond-fullstack-bootstrap/references/generated/runtime-gate.md +262 -0
- package/rainbond-fullstack-bootstrap/references/generated/runtime-routing.md +24 -0
- package/rainbond-fullstack-bootstrap/references/generated/user-result.md +16 -0
- package/rainbond-fullstack-bootstrap/references/manifest-v1-reference.md +1 -1
- package/rainbond-fullstack-bootstrap/references/sql-init-recipe.md +1 -1
- package/rainbond-fullstack-bootstrap/schemas/generated/handoff-context.schema.yaml +64 -0
- package/rainbond-fullstack-bootstrap/scripts/validate_bootstrap_output.py +10 -0
- package/rainbond-fullstack-troubleshooter/SKILL.md +47 -1030
- package/rainbond-fullstack-troubleshooter/evals/10-config-file-configmap-missing.expected.yaml +6 -0
- package/rainbond-fullstack-troubleshooter/evals/10-config-file-configmap-missing.response.md +8 -7
- package/rainbond-fullstack-troubleshooter/references/diagnosis-context.md +211 -0
- package/rainbond-fullstack-troubleshooter/references/diagnosis-workflow.md +118 -0
- package/rainbond-fullstack-troubleshooter/references/generated/runtime-gate.md +227 -0
- package/rainbond-fullstack-troubleshooter/references/generated/runtime-routing.md +15 -0
- package/rainbond-fullstack-troubleshooter/references/generated/troubleshoot-contract.md +127 -0
- package/rainbond-fullstack-troubleshooter/references/generated/user-result.md +16 -0
- package/rainbond-fullstack-troubleshooter/references/output-contract.md +3 -67
- package/rainbond-fullstack-troubleshooter/references/root-cause-rules.md +3 -2
- package/rainbond-fullstack-troubleshooter/schemas/generated/handoff-context.schema.yaml +64 -0
- package/rainbond-fullstack-troubleshooter/scripts/generate_troubleshoot_contract.mjs +100 -0
- package/rainbond-fullstack-troubleshooter/scripts/validate_troubleshoot_output.py +0 -17
- package/rainbond-opensource-app-deploy/SKILL.md +8 -4
- package/rainbond-opensource-app-deploy/references/deployment-workflow.md +2 -2
- package/rainbond-opensource-app-deploy/references/generated/runtime-gate.md +188 -0
- package/rainbond-opensource-app-deploy/references/generated/runtime-routing.md +24 -0
- package/rainbond-opensource-app-deploy/references/generated/user-result.md +16 -0
- package/rainbond-platform-installer/SKILL.md +2 -2
- package/rainbond-platform-installer/scripts/installed-version.js +1 -1
- package/rainbond-platform-installer/scripts/user-message.js +7 -9
- package/rainbond-platform-plugin-manager/SKILL.md +38 -0
- package/rainbond-platform-plugin-manager/agents/openai.yaml +5 -0
- package/rainbond-platform-plugin-manager/evals/scenarios.yaml +28 -0
- package/rainbond-platform-plugin-manager/references/generated/runtime-gate.md +188 -0
- package/rainbond-platform-plugin-manager/references/generated/runtime-routing.md +15 -0
- package/rainbond-platform-plugin-manager/references/generated/user-result.md +16 -0
- package/rainbond-platform-plugin-manager/references/output-contract.md +14 -0
- package/rainbond-platform-plugin-manager/references/plugin-discovery.md +12 -0
- package/rainbond-platform-plugin-manager/references/plugin-lifecycle.md +25 -0
- package/rainbond-platform-plugin-manager/references/recovery.md +13 -0
- package/rainbond-platform-plugin-manager/scripts/validate_progressive_loading.py +31 -0
- package/rainbond-platform-query/SKILL.md +49 -178
- package/rainbond-platform-query/references/generated/runtime-gate.md +109 -0
- package/rainbond-platform-query/references/generated/runtime-routing.md +15 -0
- package/rainbond-project-init/SKILL.md +49 -1132
- package/rainbond-project-init/references/generated/runtime-gate.md +201 -0
- package/rainbond-project-init/references/generated/runtime-routing.md +24 -0
- package/rainbond-project-init/references/generated/user-result.md +16 -0
- package/rainbond-project-init/references/manifest-inference.md +274 -0
- package/rainbond-project-init/references/manifest-rules.md +2 -271
- package/rainbond-project-init/references/operational-reference.md +1 -1
- package/rainbond-project-init/references/output-contract.md +6 -23
- package/rainbond-project-init/references/workflow-and-verification.md +8 -2
- package/rainbond-project-init/schemas/generated/handoff-context.schema.yaml +64 -0
- package/rainbond-project-init/schemas/project-init-result.schema.yaml +122 -0
- package/rainbond-template-installer/SKILL.md +43 -544
- package/rainbond-template-installer/references/generated/runtime-gate.md +201 -0
- package/rainbond-template-installer/references/generated/runtime-routing.md +24 -0
- package/rainbond-template-installer/references/generated/user-result.md +16 -0
- package/rainbond-template-installer/references/output-contract.md +168 -0
- package/rainbond-template-installer/references/template-resolution.md +55 -0
- package/rainbond-template-installer/references/template-workflow.md +129 -0
- package/rainbond-template-installer/schemas/generated/handoff-context.schema.yaml +64 -0
- package/scripts/install-local-cli.mjs +4 -0
- package/scripts/sync-ai-engine-contract.mjs +27 -0
- package/scripts/validate_customer_output.py +21 -14
- package/rainbond-app-assistant/references/runtime-gate.md +0 -178
- package/rainbond-fullstack-bootstrap/modules/40-source-and-package-rules.md +0 -273
- package/rainbond-fullstack-bootstrap/modules/50-workflow-and-convergence.md +0 -220
- package/rainbond-opensource-app-deploy/references/runtime-gate.md +0 -158
package/README.md
CHANGED
|
@@ -1,285 +1,165 @@
|
|
|
1
|
-
#
|
|
1
|
+
# RainSkills
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> 让你的 AI Agent 把当前项目部署上线,并验证页面和 API。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
RainSkills 是一组开源 Agent Skills,让 Codex、Claude Code、Pi Agent、
|
|
6
|
+
DeepSeek Harness、WorkBuddy 和 Hermes Agent 能够继续完成应用部署、
|
|
7
|
+
故障排查、交付验证、版本管理和回滚。
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
它从 Agent 已经理解的当前项目出发,把前端、后端、数据库、缓存、
|
|
10
|
+
端口和存储组织成 Rainbond 应用。应用可以运行在 Rainbond Cloud、
|
|
11
|
+
你自己的服务器或 Kubernetes 中。
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
npx skills add goodrain/rainskills
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Skill 市场当前要求 Node.js 22.20.0 或更高版本。直接运行 npx 安装器最低支持 Node.js 18:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npx --yes rainskills
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
没有合适的 Node.js 时可使用 CDN 入口:
|
|
13
|
+
**AI 负责生成,RainSkills 负责交付,Rainbond 负责持续运行。**
|
|
20
14
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
[产品介绍](https://www.rainbond.com/rainskills) ·
|
|
16
|
+
[安装与使用](https://www.rainbond.com/docs/ai/rainskills) ·
|
|
17
|
+
[视频教程](https://www.rainbond.com/videos/rainskills-ai-deploy) ·
|
|
18
|
+
[Rainbond Cloud](https://run.rainbond.com)
|
|
24
19
|
|
|
25
|
-
|
|
20
|
+
## 为什么使用 RainSkills
|
|
26
21
|
|
|
27
|
-
|
|
22
|
+
AI Agent 已经理解了代码、依赖和项目结构。进入部署阶段后,如果改用临时脚本或直接 SSH,
|
|
23
|
+
这些上下文通常需要重新整理,部署结果也很难沉淀为可以持续维护的应用。
|
|
28
24
|
|
|
29
|
-
|
|
25
|
+
| 对比维度 | Agent 直接 SSH / 临时脚本 | RainSkills + Rainbond |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| 工作起点 | 重新整理服务器、端口、依赖和命令 | 直接复用当前项目上下文 |
|
|
28
|
+
| 应用结构 | 人工拼装进程、数据库、网络和存储 | 用应用拓扑管理组件与依赖 |
|
|
29
|
+
| 失败排查 | 手工寻找构建、容器和网关日志 | Agent 读取构建日志、运行日志、Pod 和平台事件 |
|
|
30
|
+
| 完成标准 | 命令成功或进程已经启动 | 页面和 API 完成实际访问验证 |
|
|
31
|
+
| 权限边界 | Agent 通常直接持有 SSH 或生产凭据 | 浏览器授权、受控工具调用和高风险操作确认 |
|
|
32
|
+
| 后续维护 | 继续维护脚本和服务器差异 | 在同一应用上升级、快照、发布和回滚 |
|
|
30
33
|
|
|
31
|
-
|
|
32
|
-
codex plugin marketplace add goodrain/rainskills
|
|
33
|
-
codex plugin add rainskills@goodrain
|
|
34
|
-
```
|
|
34
|
+
RainSkills 更适合多组件应用、自托管环境、私有化交付,以及需要持续排障和版本管理的项目。
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
## RainSkills 如何工作
|
|
37
37
|
|
|
38
38
|
```text
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
当前项目或部署目标
|
|
40
|
+
→ Codex、Claude Code 等 AI Agent
|
|
41
|
+
→ RainSkills 选择对应的部署、排障或验证 Skill
|
|
42
|
+
→ 首次需要时选择并连接一个 Rainbond 运行环境
|
|
43
|
+
→ Rainbond 构建并运行应用
|
|
44
|
+
→ RainSkills 验证页面、API 和最终访问地址
|
|
42
45
|
```
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
npx --yes rainskills dsh
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
默认安装到 `${DSH_HOME:-~/.dsh}/skills`。DeepSeek Harness 使用原生 Skill catalog 和 `skill` loader 加载,不配置客户端 MCP。
|
|
51
|
-
|
|
52
|
-
WorkBuddy:
|
|
47
|
+
RainSkills 安装与运行环境连接是两个阶段。安装完成后可以直接提出部署任务;
|
|
48
|
+
第一次需要 Rainbond 时,Agent 再引导你选择 Cloud、已有私有环境、本机或服务器。
|
|
53
49
|
|
|
54
|
-
|
|
55
|
-
npx --yes rainskills workbuddy
|
|
56
|
-
```
|
|
50
|
+

|
|
57
51
|
|
|
58
|
-
|
|
52
|
+
## 快速开始
|
|
59
53
|
|
|
60
|
-
|
|
54
|
+
使用 Skill 市场安装:
|
|
61
55
|
|
|
62
56
|
```bash
|
|
63
|
-
npx
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
默认安装到 `${HERMES_HOME:-~/.hermes}/skills`,与其他宿主共用同一 CLI profile 和本地 Rainskills CLI,不配置客户端 MCP。如果安装发生在一个已经打开的 Hermes 会话中,执行 `/reset` 或新建会话后再使用新安装的 Skills。
|
|
67
|
-
|
|
68
|
-
安装流程支持 Codex、Claude Code、Pi Agent、DeepSeek Harness、WorkBuddy 和 Hermes Agent;所有 Agent 共用同一组 Skills、CLI profile 和本地 Rainskills CLI,不提供单独的客户端 MCP adapter。macOS、Linux 和 WSL 不支持 OpenClaw 安装。不要手工复制 Skill、拼接凭据或修改 Agent 配置。
|
|
69
|
-
|
|
70
|
-
测试或发布烟测可在安装命令末尾追加 `--no-telemetry`,仅关闭当前进程的匿名安装遥测;普通安装不传该参数时保持默认遥测行为。
|
|
71
|
-
|
|
72
|
-
非交互安装必须明确指定 `codex`、`claude`、`pi`、`dsh`、`workbuddy`、`hermes` 或 `all`;`all` 不再作为无 target 时的默认值。发布后验证统一执行 `npm run verify:published -- <version>`,该脚本会在临时 HOME 中显式安装全部目标并强制关闭遥测。
|
|
73
|
-
|
|
74
|
-
## 安装完成时用户会看到什么
|
|
75
|
-
|
|
76
|
-
安装完成后只完成 Skills 和受保护本地 CLI 的安装并展示能力列表,不选择运行环境、不登录 Rainbond,也不配置 Agent MCP:
|
|
77
|
-
|
|
78
|
-
```text
|
|
79
|
-
Rainskills 安装完成,下一条消息即可直接使用。
|
|
80
|
-
|
|
81
|
-
下一步可以直接说:
|
|
82
|
-
|
|
83
|
-
- 帮我部署当前项目
|
|
84
|
-
- 帮我部署一个 Git 仓库
|
|
85
|
-
- 帮我通过镜像或安装包部署应用
|
|
86
|
-
- 帮我安装一个应用模板
|
|
87
|
-
- 帮我分析当前项目应该如何部署
|
|
88
|
-
|
|
89
|
-
也可以直接告诉我你想部署什么应用。
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
用户第一次提出部署、查询、排障、验证、快照或模板安装等需要运行环境的动作时,Rainskills 才检查和连接运行环境。
|
|
93
|
-
|
|
94
|
-
## 按需连接应用运行环境
|
|
95
|
-
|
|
96
|
-
每个业务 Skill 都必须先通过相同门禁:
|
|
97
|
-
|
|
98
|
-
0. 第一步检查 Node.js 是否存在且主版本不低于 18。缺失或低于 18 时,只说明 Rainskills 执行组件需要 Node.js 18 或更高版本并停止;不连接运行环境、不调用 CLI、不猜测替代命令。
|
|
99
|
-
|
|
100
|
-
固定 launcher 来自当前 `package.json` 版本:
|
|
101
|
-
|
|
102
|
-
```json
|
|
103
|
-
["node", "<home>/.rainbond/lib/rainskills/bin/rainskills.js"]
|
|
57
|
+
npx skills add goodrain/rainskills
|
|
104
58
|
```
|
|
105
59
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
1. 本会话首次使用时执行 launcher + `["runtime", "status", "--json"]`。只有返回 `connected` 且 `usable=true` 才进入业务流程。
|
|
109
|
-
2. 本机只保存一个 Rainbond 运行环境。没有环境时使用 `runtime connect` 连接 Cloud、已有私有 Rainbond,或安装一个私有 Rainbond;重新授权使用 `runtime reconnect <target>`。
|
|
110
|
-
3. 所有 Rainbond 查询和变更都直接通过 `~/.rainbond/bin/rainskills-tools.js`。不配置客户端 MCP,不创建业务 runtime operation,不传环境 ID、operation ID 或 intent JSON。
|
|
111
|
-
4. 写操作仍由 CLI 生成 confirmation ID;只有完全相同的输入追加 `--confirm` 后才执行一次。
|
|
112
|
-
5. 安装私有环境时,只消费完成 schema、action、onboarding id 和参数边界校验的 `rainskills.next-action.v1.argv`;onboarding id 只属于平台安装断点。
|
|
113
|
-
|
|
114
|
-
`deploy`/`create` 允许先只保存动作类型。选择私有环境后,先完整完成本地单机、服务器单机、主机集群或已有 Kubernetes 的平台安装和验收;此阶段不得询问本地项目路径、Git 仓库 URL、镜像地址或安装包路径。恢复到 `project-analysis` 后才识别当前项目或询问缺失的应用来源。
|
|
115
|
-
|
|
116
|
-
### 新应用环境选择
|
|
117
|
-
|
|
118
|
-
新应用场景使用以下说明:
|
|
119
|
-
|
|
120
|
-
> 可以,我会帮你完成应用识别、构建、部署和访问验证。
|
|
121
|
-
>
|
|
122
|
-
> 不过目前还没有可用的应用运行环境。
|
|
123
|
-
>
|
|
124
|
-
> 你刚安装的 Rainskills 是负责“部署”的 AI 助手,它会分析项目并执行部署流程;Rainbond 负责为应用提供稳定运行环境。
|
|
125
|
-
>
|
|
126
|
-
#### 选择运行环境
|
|
127
|
-
|
|
128
|
-
提示“请选择应用要运行的环境:”,并只显示:
|
|
129
|
-
|
|
130
|
-
1) 云端环境(免费体验)
|
|
131
|
-
2) 本机环境
|
|
132
|
-
3) 独立服务器
|
|
133
|
-
4) 已有 Rainbond
|
|
134
|
-
|
|
135
|
-
选择 1 时执行 `saas` route;选择 2 时执行 `install-private` route 并传入 `--location local`;选择 3 时执行 `install-private` route 并传入 `--location server`;选择 4 时询问已有 Rainbond 地址并执行 `private-existing` route。不得显示“私有环境”中间层,不得在进入平台安装器后重复询问部署位置,也不得在环境准备完成前询问应用来源。
|
|
136
|
-
|
|
137
|
-
选择“部署到独立服务器”后,只显示:
|
|
138
|
-
|
|
139
|
-
请选择服务器类型:
|
|
140
|
-
|
|
141
|
-
1、单台服务器(Linux)
|
|
142
|
-
2、三台及以上服务器(Linux)
|
|
143
|
-
3、已有 Kubernetes 集群
|
|
144
|
-
|
|
145
|
-
### 服务器 SSH 固定流程
|
|
146
|
-
|
|
147
|
-
部署到独立服务器或主机集群时,流程不再根据 Agent 是否提供可见终端而变化:
|
|
148
|
-
|
|
149
|
-
1. Rainskills 先使用 `BatchMode=yes` 检查 SSH 免密连接。
|
|
150
|
-
2. 已可连接时直接继续安装流程;不可连接时固定停止,不在 Agent 任务终端里等待密码。
|
|
151
|
-
3. 单台服务器时,用户在系统终端执行一条版本锁定的 `ssh prepare --ssh <user@host> --ssh-port <port>` 命令。
|
|
152
|
-
4. 主机集群时,Rainskills 先检查全部节点,一次列出所有待处理节点的名称、IP 和端口,再只给出一条版本锁定的 `ssh prepare-cluster --cluster-config <path>` 命令。该命令依次处理全部节点,已可免密连接的节点自动跳过;不得逐台显示命令或逐台等待用户回复。
|
|
153
|
-
5. 指纹和一次服务器密码均由系统 SSH 读取;两种命令都只准备公钥连接,不安装 Rainbond。全部节点处理完后,用户统一回复一次“已完成”。
|
|
154
|
-
6. Agent 使用同一版本、同一 `onboarding-id` 和原安装参数继续。不得重新询问环境、安装模式、节点或应用来源。
|
|
155
|
-
7. 后续传输、安装和验收全部使用免密 SSH;系统终端不会继续安装或授权。
|
|
156
|
-
8. Rainbond 验收通过后只进行一次浏览器授权;授权成功后由当前 Agent 会话继续应用任务。
|
|
157
|
-
|
|
158
|
-
主机密钥发生变化时直接阻断并要求人工核对,不自动替换 `known_hosts`。聊天中永远不接收密码、私钥或 Token。
|
|
159
|
-
|
|
160
|
-
## 单运行环境
|
|
161
|
-
|
|
162
|
-
- 本机只保存一个 Rainbond Console origin 和对应凭据。
|
|
163
|
-
- 更换环境时,新凭据通过 live probe 后才覆盖当前运行环境。
|
|
164
|
-
- 连接和重新授权始终进入浏览器 Device Flow,不复用 Shell 中缓存的 JWT。
|
|
165
|
-
- Agent 始终执行受保护的本地 Rainskills CLI,不配置或直接调用客户端 MCP。
|
|
166
|
-
- 项目的 preview/production 配置仍属于应用配置投影,与本机连接的 Rainbond 运行环境不是同一概念。
|
|
167
|
-
|
|
168
|
-
业务 CLI 默认忽略 Shell 中遗留的 `RAINBOND_URL` / `RAINBOND_JWT`。CI 需要使用环境变量凭据时,显式设置:
|
|
60
|
+
或者直接运行官方安装器:
|
|
169
61
|
|
|
170
62
|
```bash
|
|
171
|
-
|
|
172
|
-
RAINBOND_URL=https://rainbond.example.com \
|
|
173
|
-
RAINBOND_JWT="$RAINBOND_JWT" \
|
|
174
|
-
node ~/.rainbond/bin/rainskills-tools.js status --skill-id rainbond-platform-query
|
|
63
|
+
npx --yes rainskills
|
|
175
64
|
```
|
|
176
65
|
|
|
177
|
-
|
|
66
|
+
DeepSeek Harness 用户也可以把 RainSkills bootstrap 作为 profile bundle 安装:
|
|
178
67
|
|
|
179
68
|
```bash
|
|
180
|
-
|
|
181
|
-
node ~/.rainbond/lib/rainskills/bin/rainskills.js runtime reconnect codex
|
|
69
|
+
dsh plugin --profile web add rainskills
|
|
182
70
|
```
|
|
183
71
|
|
|
184
|
-
|
|
72
|
+
安装后调用 `/rainskills`,或直接告诉 Agent“安装 RainSkills”。该 bundle 只注册
|
|
73
|
+
bootstrap Skill;完整的 `rainbond-*` Skills 仍由官方安装器统一安装和更新。
|
|
185
74
|
|
|
186
|
-
|
|
75
|
+
`npx` 安装方式需要 Node.js 18 或更高版本。建议使用仍在维护的 Node.js 22 或 24。
|
|
187
76
|
|
|
188
|
-
|
|
77
|
+
安装完成后,在项目目录告诉 Agent:
|
|
189
78
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
Rainbond CLI 返回 401 时执行:
|
|
193
|
-
|
|
194
|
-
```json
|
|
195
|
-
["runtime", "reconnect", "<target>"]
|
|
79
|
+
```text
|
|
80
|
+
帮我部署当前项目,并验证页面和 API。
|
|
196
81
|
```
|
|
197
82
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
凭据只由受保护的本地状态和客户端配置处理。不要在聊天、intent、日志或命令行参数中发送密码、JWT、Token 或私钥。
|
|
83
|
+
如果还没有可用的 Rainbond,Agent 会在第一次需要运行环境时让你选择 Cloud、
|
|
84
|
+
已有私有环境、本机或服务器,不会在安装 Skill 时替你决定目标环境。
|
|
201
85
|
|
|
202
|
-
##
|
|
86
|
+
## 可以直接告诉 Agent 什么
|
|
203
87
|
|
|
204
|
-
|
|
88
|
+
- `帮我部署当前项目`
|
|
89
|
+
- `帮我部署这个 Git 仓库`
|
|
90
|
+
- `帮我通过镜像或安装包部署应用`
|
|
91
|
+
- `帮我安装一个应用模板`
|
|
92
|
+
- `帮我部署 Dify、n8n 或 Harbor`
|
|
93
|
+
- `帮我检查 backend 为什么构建失败`
|
|
94
|
+
- `确认当前应用是否已经交付成功,并给我访问地址`
|
|
95
|
+
- `给当前应用创建快照`
|
|
96
|
+
- `把当前应用回滚到上一个快照`
|
|
205
97
|
|
|
206
|
-
|
|
207
|
-
2. 部署到已有 Rainbond 只询问环境地址,不执行平台安装。
|
|
208
|
-
3. 部署到本机直接进入单机版,不展示 ROI 或 Kubernetes;只有选择独立服务器后,再选择单台 Linux、三台及以上 Linux 或已有 Kubernetes。
|
|
98
|
+
## 支持范围
|
|
209
99
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
Windows 本地安装是预览能力,也可以改选 Linux 服务器。它要求 Windows 10 build 19041+ 或 Windows 11 x64、已开启虚拟化并允许 UAC;安装器使用受管 WSL2 环境。macOS 本地路径使用 OrbStack。用户不需要理解这些底层实现。
|
|
213
|
-
|
|
214
|
-
常用固定参数:
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
# 本地单机
|
|
218
|
-
node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
|
|
219
|
-
--location local --mode single-node
|
|
220
|
-
|
|
221
|
-
# Linux 服务器单机
|
|
222
|
-
node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
|
|
223
|
-
--location server --mode single-node --ssh <user@host>
|
|
224
|
-
|
|
225
|
-
# 服务器主机集群(自动生成受保护示例文件)
|
|
226
|
-
node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
|
|
227
|
-
--location server --mode host-cluster
|
|
228
|
-
|
|
229
|
-
# 已有高级 ROI cluster.yaml 才追加:--cluster-config <path>
|
|
230
|
-
|
|
231
|
-
# 已有 Kubernetes
|
|
232
|
-
node ~/.rainbond/lib/rainskills/bin/rainskills.js platform install --onboarding-id <id> \
|
|
233
|
-
--location server --mode existing-kubernetes \
|
|
234
|
-
--kubeconfig <path> --kube-context <name> --chart-version <version>
|
|
235
|
-
```
|
|
100
|
+
### AI Agent
|
|
236
101
|
|
|
237
|
-
|
|
102
|
+
- Codex
|
|
103
|
+
- Claude Code
|
|
104
|
+
- Pi Agent
|
|
105
|
+
- DeepSeek Harness
|
|
106
|
+
- WorkBuddy
|
|
107
|
+
- Hermes Agent
|
|
238
108
|
|
|
239
|
-
###
|
|
109
|
+
### 项目来源
|
|
240
110
|
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
111
|
+
- 当前本地项目
|
|
112
|
+
- 普通 Git 仓库
|
|
113
|
+
- 本地软件包
|
|
114
|
+
- 私有容器镜像或单镜像组件
|
|
115
|
+
- Compose、Helm 或多镜像描述
|
|
116
|
+
- Dify、n8n、Harbor 等第三方开源应用
|
|
117
|
+
- Rainbond 应用模板
|
|
247
118
|
|
|
248
|
-
|
|
119
|
+
Compose、Helm 和第三方应用中的特权容器、Operator、CRD、Job、主机网络或主机目录等语义,
|
|
120
|
+
需要根据当前 Rainbond 能力单独判断,不承诺原样转换所有 Kubernetes 配置。
|
|
249
121
|
|
|
250
|
-
|
|
122
|
+
### 运行环境
|
|
251
123
|
|
|
252
|
-
|
|
124
|
+
- Rainbond Cloud
|
|
125
|
+
- 已经运行的私有 Rainbond
|
|
126
|
+
- 本机 Rainbond
|
|
127
|
+
- 独立服务器上的 Rainbond
|
|
128
|
+
- 已有 Kubernetes 集群中的 Rainbond
|
|
253
129
|
|
|
254
|
-
|
|
130
|
+
## 安全和权限边界
|
|
255
131
|
|
|
256
|
-
|
|
132
|
+
- 通过浏览器完成 Rainbond 授权,不要求在聊天中粘贴 JWT、密码或私钥。
|
|
133
|
+
- 创建、更新和删除资源前核对目标企业、团队、应用和组件。
|
|
134
|
+
- 删除资源、平台安装、数据变更和其他高风险操作需要明确确认。
|
|
135
|
+
- Rainbond 授权凭据保存在受保护的本地状态中,不写入项目文件。
|
|
136
|
+
- 部署完成后继续验证组件、页面和 API,不把命令成功当作交付完成。
|
|
257
137
|
|
|
258
|
-
|
|
138
|
+
用户明确选择在独立服务器安装 Rainbond 时,受控安装流程可能使用 SSH。
|
|
139
|
+
应用部署和后续管理仍通过 Rainbond 应用模型完成,而不是依赖散落的服务器命令。
|
|
259
140
|
|
|
260
|
-
|
|
141
|
+
## 适合哪些场景
|
|
261
142
|
|
|
262
|
-
|
|
143
|
+
- AI Agent 已经写完或修改了项目,需要继续部署。
|
|
144
|
+
- 项目包含前端、后端、数据库、缓存或异步任务。
|
|
145
|
+
- 应用需要运行在自己的服务器、私有云或 Kubernetes 中。
|
|
146
|
+
- 部署完成后仍需日志、升级、快照、发布和回滚。
|
|
147
|
+
- 团队需要复用私有化或客户现场的交付流程。
|
|
263
148
|
|
|
264
|
-
|
|
265
|
-
- `rainbond-app-version-assistant`
|
|
266
|
-
- `rainbond-delivery-verifier`
|
|
267
|
-
- `rainbond-env-sync`
|
|
268
|
-
- `rainbond-fullstack-bootstrap`
|
|
269
|
-
- `rainbond-fullstack-troubleshooter`
|
|
270
|
-
- `rainbond-opensource-app-deploy`
|
|
271
|
-
- `rainbond-platform-installer`
|
|
272
|
-
- `rainbond-platform-query`
|
|
273
|
-
- `rainbond-project-init`
|
|
274
|
-
- `rainbond-template-installer`
|
|
149
|
+
## 哪些场景可能不需要 RainSkills
|
|
275
150
|
|
|
276
|
-
|
|
151
|
+
- 只发布一个接受完全托管的纯静态页面。
|
|
152
|
+
- 团队已经有成熟的内部开发平台和 GitOps 流程。
|
|
153
|
+
- 只是一次性的本地实验,不需要持续运行、排障或回滚。
|
|
277
154
|
|
|
278
|
-
|
|
279
|
-
- 只说“部署 Harbor / Dify / n8n”等第三方开源套件也可以 → `rainbond-opensource-app-deploy` 会自动联网获取官方仓库、文档和 Release 中的部署资料,固定版本并推导组件拓扑;用户已提供 Compose、Helm 或镜像集合时也走这里
|
|
280
|
-
- 部署当前项目、普通 Git 仓库或私有镜像项目 → `rainbond-app-assistant`
|
|
155
|
+
## 文档与支持
|
|
281
156
|
|
|
282
|
-
|
|
157
|
+
- [RainSkills 产品介绍](https://www.rainbond.com/rainskills)
|
|
158
|
+
- [安装与使用文档](https://www.rainbond.com/docs/ai/rainskills)
|
|
159
|
+
- [安装与连接视频教程](https://www.rainbond.com/videos/rainskills-ai-deploy)
|
|
160
|
+
- [市场上架 Runbook](https://github.com/goodrain/rainskills/blob/main/docs/marketplace-publishing.md)
|
|
161
|
+
- [Rainbond 安装文档](https://www.rainbond.com/docs/installation)
|
|
162
|
+
- [提交问题](https://github.com/goodrain/rainskills/issues)
|
|
283
163
|
|
|
284
164
|
## License
|
|
285
165
|
|
package/SKILL.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rainskills
|
|
3
|
-
description:
|
|
3
|
+
description: Install, update, repair, connect, reconnect, inspect, or replace the single Rainskills runtime. Use for Rainskills setup and onboarding, not application deployment.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Rainskills
|
|
7
7
|
|
|
8
|
-
This is the single marketplace entry for the complete Rainskills product. The installer deploys every bundled `rainbond-*` Skill as an independent Skill with its own trigger and responsibility, including the lightweight read-only `rainbond-platform-query` skill. Do not ask the user to choose only one of them.
|
|
8
|
+
This is the single marketplace entry for the complete Rainskills product. The installer deploys every bundled `rainbond-*` Skill as an independent Skill with its own trigger and responsibility, including `rainbond-platform-plugin-manager`, `rainbond-ai-assistant`, and the lightweight read-only `rainbond-platform-query` skill. Do not ask the user to choose only one of them.
|
|
9
9
|
|
|
10
10
|
## Initialize
|
|
11
11
|
|
|
@@ -54,7 +54,7 @@ Hermes Agent 中必须使用 `terminal` 以 `background=true` 启动授权命令
|
|
|
54
54
|
|
|
55
55
|
DeepSeek Harness 和 WorkBuddy 也必须保持原命令附着直到退出;如果宿主把长命令转成持久终端或后台任务,只能轮询该原始命令句柄,不得另起 `runtime status` 推测授权结果。WorkBuddy 安装后若当前任务的 Skill 清单尚未刷新,在下一条业务动作前先刷新 Skill 列表或新建任务,不得退回内置 Sites 代替 Rainbond 部署。
|
|
56
56
|
|
|
57
|
-
Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.
|
|
57
|
+
Rainskills 只保存一个全局运行环境,不维护环境列表、名称、默认值或环境 ID。使用固定 launcher `node <home>/.rainbond/lib/rainskills/bin/rainskills.js`(运行包版本 `rainskills@0.1.43`):
|
|
58
58
|
|
|
59
59
|
- 状态:执行 `runtime status --json`。
|
|
60
60
|
- 首次连接:执行 `runtime connect <target> --saas` 或 `runtime connect <target> --rainbond-url <Console origin>`。
|