Restructure Dex system based on new role or preferences
If 04-Projects/ does not exist, this vault was never set up. Use setup instead.
If the user actually changed jobs or roles — new employer, new email domain, an
old identity to archive — use change-job instead: it runs this same reset and
then guides the passes a reset alone never touches (re-sorting people for the
new domain, archiving old-role goals, priorities and projects, re-pointing open
tasks). A reset by itself is the right lever only for changed preferences or
answers within the same working life.
To turn a single room on or off, use manage-capabilities — it is a much smaller
change than a full reset and never touches the rest of the profile.
Otherwise:
Tell the user what a reset does and does not do, and get an explicit yes before calling anything:
"I'll walk you through the same questions as first-time setup and rewrite your profile — role, company, pillars, communication style, working week and rooms. Every setting you don't re-answer carries forward unchanged, and nothing you've written is deleted or moved: your notes, people, meetings and projects all stay exactly where they are. Want to go ahead?"
Stop here if they decline.
Call start_onboarding_session(force_new=True) from onboarding-mcp. The
force_new flag is what makes this a reset rather than resuming a half-finished
setup. Know what it re-arms: the fresh session clears the calendar answer and
the harness confirmation, so the flow's calendar step and harness-selection
confirmation must both be replayed — finalize_onboarding refuses to run
until each has been addressed again. Do not skip past them expecting the old
answers to still count.
Read .claude/flows/onboarding.md and follow it as the single source of the
conversation, exactly as setup does.
Before finalizing, call finalize_onboarding(dry_run=True) and show the user
what it reports it would create, plus the profile_changes list — every
profile setting that will change, old value → new value. Settings not in that
list carry forward. Tell the user that on a vault that already completed
onboarding, finalizing first takes a snapshot of the current profile, pillars
and room choices — before anything is rewritten — so the reset can be checked
afterwards and undone if it went wrong. Then call finalize_onboarding().
After finalizing, show the user the transition_verification summary from the
finalize response — it reads "Changed (you chose): … Carried forward: N
settings. Lost: none." Read it before relaying it: if it reports anything
lost or changed outside their answers, say so plainly instead of declaring
success, and offer restore_transition_capsule — preview first (it defaults
to a dry run), then rerun it with dry_run=false if they want the two
settings files put back exactly as they were. verify_transition re-runs the
same check anytime against the snapshot named in the response.
Say this honestly — do not promise more:
System/user-profile.yaml, System/pillars.yaml, and the room
set, through the onboarding MCP and core/capabilities.py.System/pillars.yaml, priority_limits survives, and a pillar kept under
the same name keeps its keywords and description. Only a vault that never
finished onboarding is rebuilt from the answers alone.Pipeline/ renamed to
Portfolio/, that is a manual choice the user makes afterwards — offer to help,
do not do it silently as part of the reset. The completion marker keeps its
original setup date; the reset is recorded alongside it, not over it.user-profile.yaml, pillars.yaml and room states, then verifies the
result against the keys the re-answered steps were allowed to change. The
snapshot stays in System/.dex/transition-capsules/ and can restore those two
files exactly — it is not a backup of anything else.This file deliberately contains no question script, no role list and no company-size
list, so reset cannot fork away from setup. The roles, the area→role picker and every
other question live in .claude/flows/onboarding.md; change them only there.
Never create folders, move files, or edit CLAUDE.md or System/user-profile.yaml
by hand in this skill. core/provision.cjs, core.lifecycle.service and
core/capabilities.py own all vault mutation, and the onboarding MCP owns all
profile writes and their validation.
Update System/usage_log.md to mark vault reset as used.
Analytics (Silent):
Call track_event with event_name vault_reset and properties:
This only fires if the user has opted into analytics. No action needed if it returns "analytics_disabled".
Edit PDFs with natural-language instructions using the nano-pdf CLI.
Control Sonos speakers (discover/status/play/volume/group).
Terminal Spotify playback/search via spogo (preferred) or spotify_player.
Capture frames or clips from RTSP/ONVIF cameras.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
Category:tools