Values Elicitation
Help the user articulate a "source of meaning" — a way of living they find intrinsically meaningful — and write it as a values card in their values store.
When to run
Run when:
- The user invokes the skill.
- The user shares a story, strong feeling, role model, difficult choice, norm, something they want more of in their life, or a topic they have strong feelings about — AND signals openness to going deeper. When in doubt, ask once.
Don't run when:
- The user is in flow on another task.
How to run
The interview has four stages. Read references/conversation.md for the
flow, brevity rules, and how to handle goals/feelings/norms.
- Surface the source of meaning (1-3 exchanges).
- Draft and refine 3-6 attention policies.
- Ask once what gets in the way of living this.
- Write the card. Don't ask for confirmation on title or situations — generate them, save, and tell the user where the file is and that they can edit it.
Read references/cards.md before drafting policies or writing the card.
It covers what a source of meaning is, how to write attention policies,
and the exact card format.
Setup
Values store path:
- Preferred:
$AGENT_VALUES_DIR - Fallback:
~/.openclaw/values
Silently ensure these exist on every run (no chatter):
$AGENT_VALUES_DIR/(or~/.openclaw/values/)cards/transcripts/VALUES.md(create an empty file if missing)build.mjs(copy fromscripts/build-values.mjsif missing)
First run only. Detect first run by whether VALUES.md existed before
this turn. If it did not, after the silent bootstrap:
- Tell the user in one line where the values store landed (e.g.
"Set up your values store at
~/.openclaw/values/."). - Check for
USER.mdat$OPENCLAW_USER_MD_PATH, then~/.openclaw/workspace/USER.md, then~/.openclaw/USER.md. If one exists and doesn't already mentionVALUES.md, ask once whether to append the contents ofreferences/USER_MD_SNIPPET.mdso other agents will consult their values. Append if they say yes; otherwise move on. If noUSER.mdis found, mention briefly that they may want to add the snippet to their user profile later. - Proceed straight into the elicitation. Do not repeat any of this on subsequent runs.
Output
After Stage 3 (the blocker question), without asking for confirmation:
- Pick a slug. Kebab-cased title. "Tending the Quiet" →
tending-the-quiet. - Write the card to
cards/<slug>.mdusing the format inreferences/cards.md. - Write the transcript to
transcripts/<YYYY-MM-DD>-<slug>.md— plain markdown dump with**Me:**/**Agent:**turn markers. - Rebuild VALUES.md by running
node "$AGENT_VALUES_DIR/build.mjs"(ornode ~/.openclaw/values/build.mjsif unset). The Setup step already ensures the helper exists. - Tell the user the file path and that they can edit it if anything needs changing.
What the user sees vs. what goes in the file
Don't show the explication ("What this is" prose) in chat — write it
directly into the card. The user can read it there if they want to.
Don't re-render the whole card after small refinements — show only what
changed. See references/conversation.md for brevity rules.