feat(onboard): recommendations store with once-semantics and self-naming bootstrap (#110173)

* feat(onboarding): persist app recommendations once

* feat(onboarding): add self-naming birth sequence

* chore(wizard): hoist bootstrap-defer imports to the top of the module

* docs(bootstrap): persist agreed identity into IDENTITY.md and SOUL.md as well

* docs: regenerate docs map after onboarding plan merge

* fix(wizard): reuse a pending stored offer instead of rescanning apps

* fix(onboard): deduplicate bootstrap recommendations
This commit is contained in:
Peter Steinberger
2026-07-17 23:42:01 +01:00
committed by GitHub
parent ed2284c31a
commit 9a93a52a8a
19 changed files with 987 additions and 77 deletions
+10 -2
View File
@@ -18,8 +18,16 @@ On the first run against a brand-new workspace (default `~/.openclaw/workspace`)
OpenClaw:
- Seeds `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, and `BOOTSTRAP.md`.
- Has the agent follow `BOOTSTRAP.md`: a free-form conversation (not a fixed Q&A form) to settle on a name, personality, and vibe.
- Writes what it learns into `IDENTITY.md`, `USER.md`, and `SOUL.md`.
- Has the agent follow a capped three-beat birth sequence: it proposes its own
name, shares one short soul/vibe line, and asks whether you want the minimal
recommended plugin set or maximum convenience.
- Persists the agreed identity twice: into `IDENTITY.md` and `SOUL.md` (what the
agent reads about itself) and via `openclaw agents set-identity` (what channels
and the UI display).
- Reads app recommendations already stored during onboarding without rescanning.
Official plugins use `openclaw plugins install <id>`; third-party ClawHub
skills remain explicit opt-ins. After the choice is handled, the agent
acknowledges the stored offer so it never asks again.
- Deletes `BOOTSTRAP.md` once the workspace looks configured, so the ritual only runs once.
A workspace counts as configured once `SOUL.md`, `IDENTITY.md`, or `USER.md` has
+13 -8
View File
@@ -186,16 +186,21 @@ Remote-gateway onboarding keeps its legacy conversational handoff
### Phase 5 — hatch and bootstrap (planned)
- Custodian creates a nameless agent (tool call); the agent's bootstrap opens
with self-naming and a self-drawn avatar (image-gen ladder: model-generated
candidates → preset marks → keep logo). Same thread, avatar swap; the claw
mark stays reserved for the custodian. Cap the birth sequence at roughly
three beats (name+face → soul line → skills question) before the agent is
useful.
with self-naming. PR1 ships the ceremony capped at three beats (name → soul
line → skills question) and defers the self-drawn avatar/image-gen ladder
(model-generated candidates → preset marks → keep logo) to a follow-up. Same
thread, avatar swap; the claw mark stays reserved for the custodian. The
agreed identity persists twice: into `IDENTITY.md`/`SOUL.md` (what the agent
reads) and via `openclaw agents set-identity` (what channels and the UI
display).
- Recommendations (phase 1 service, stored scan with once-semantics) land as
the last bootstrap step before the bootstrap file is removed: "minimal set
or maximum convenience?" Channel connect buttons carry per-channel setup
playbooks; the agent collects credentials conversationally and relays config
writes to the custodian ("asking OpenClaw…" is the canonical idiom).
or maximum convenience?" The bootstrap reads the stored offer via
`openclaw onboard recommendations --json` (opaque install IDs only) and
acknowledges it after the choice is handled so it never asks again. Channel
connect buttons carry per-channel setup playbooks; the agent collects
credentials conversationally and relays config writes to the custodian
("asking OpenClaw…" is the canonical idiom).
- Self-learning is asked, not announced, and doubles as skill-workshop
consent; describe ClawHub's release-trust, scan, verification, and integrity
checks plus the publisher-code warning — never imply every release is signed.