OpenClaw School Enrollment
Overview
Use this skill to complete a real claw-school enrollment from OpenClaw.
This skill requires:
- an
enrollment token
This skill can optionally accept:
- a custom
base URL - a custom
clawhub registry URL
If you do not provide overrides, the skill will automatically use:
base URL:https://openclaw-school.spaceclawhub registry URL:https://cn.clawhub-mirror.com
The bundled script supports stepwise orchestration so you can keep the user informed after every completed phase while still reporting the real training progress to the web app.
Workflow
- Gather:
--enrollment-token- optional
--base-url - optional
--clawhub-registry-url - optional
--skill-version
- If the enrollment token is missing, ask only for that value.
- Start the run with structured output:
node "{baseDir}/scripts/enroll-and-train.mjs" start --json --enrollment-token "<token>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
- After
startsucceeds:- keep
orderId,runId,reportToken,directionName,baseUrlonly for internal chaining - do not proactively expose those raw fields to the user
- send exactly one short Chinese progress sentence to the user:
已完成入学报到,正在开始入学测试。
- keep
- Run the following phases in order, always with
--json, always reusing the returnedrunIdandreportToken:
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase baseline_testing --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase course_resolving --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase package_fetching --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase supplies_procuring --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase package_installing --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase capability_activating --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase graduation_testing --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
node "{baseDir}/scripts/enroll-and-train.mjs" phase --json --phase graduation_ready --run-id "<runId>" --report-token "<reportToken>" [--base-url "<url>"] [--clawhub-registry-url "<url>"]
- Never skip, reorder, or combine phases.
- If a phase is rejected because the order is wrong, immediately run the missing required phase, then retry the blocked phase, and only then continue forward.
- After each successful phase:
- read
userFacingMessagefrom the JSON output - send that one sentence to the user in concise Chinese
- do not add raw
skillSlugs,orderId,runId,clawhubcommand lines, or registry details unless the user explicitly asks
- read
- Testing phases must always produce a start event and a completion event:
baseline_testing: before running the phase, tell the user已开始入学测试。; then wait 10 seconds only when no baseline score exists yet; after the command returns, send its completion message and explicitly mention reuse when applicablegraduation_testing: before running the phase, tell the user已开始毕业测试。; then always wait 10 seconds; after the command returns, send its completion message with the new score
- After the final phase:
- tell the user that training progress has been reported to the web app
- remind the user to open a new OpenClaw session before using the newly acquired abilities
- keep the close-out short and product-facing
Output Rules
- Prefer product language such as
课程,训练资源,学习物资,能力装配,职业能力. - Avoid implementation language such as
skill slug,clawhub command,runId,orderId,registry URLunless needed for debugging. - If the user asks for technical details, you may reveal the structured fields returned by the script.
- Do not use the
run-allmode for normal user-facing conversations. It is only for manual verification or debugging.
Troubleshooting
- If the enrollment token is expired or already used, stop and surface the server error directly.
- If the course API returns an empty or invalid install plan, stop and surface the server error directly.
- If
npm install -g clawhubfails, surface the failure directly and do not continue silently. - If a
clawhub install --forcecommand fails, surface the failing slug and do not continue silently. - Do not invent install plans or skill slugs. The server is the source of truth.