/soul-audit
Re-run or deepen the agent's identity interview. Drives the SHARED bootstrap answer bank (state/interview.json) via `gbrain bootstrap interview --set/--show/--confirm`, then re-renders the identity files with `gbrain bootstrap render --only <FILE> --force`. One answer store, two
Claude Code
$ npx -y skills add garrytan/gbrain --skill soul-audit --agent claude-code
Codex
$ npx skills add garrytan/gbrain --skill soul-audit -a codex -y
Cursor
$ npx skills add garrytan/gbrain --skill soul-audit -a cursor -y
Gemini CLI
$ npx skills add garrytan/gbrain --skill soul-audit -a gemini-cli -y
GitHub Copilot
$ npx skills add garrytan/gbrain --skill soul-audit -a github-copilot -y
OpenCode
$ npx skills add garrytan/gbrain --skill soul-audit -a opencode -y
Windsurf
$ npx skills add garrytan/gbrain --skill soul-audit -a windsurf -y
SKILL.md
soul-audit.SKILL.mdname: soul-audit
version: 2.0.0
description: |
Re-run or deepen the agent's identity interview. Drives the SHARED bootstrap
answer bank (state/interview.json) via `gbrain bootstrap interview
--set/--show/--confirm`, then re-renders the identity files with
`gbrain bootstrap render --only <FILE> --force`. One answer store, two
surfaces: first-boot bootstrap and this re-run skill write the same bank, so
an updated answer flows into SOUL.md, USER.md, ACCESS_POLICY.md, and
HEARTBEAT.md without hand-editing rendered files. Every answer is the user's
own words — never invented.
triggers:
- "soul audit"
- "customize agent"
- "who am I"
- "set up identity"
- "change my agent's personality"
tools:
- shell
mutating: true
Soul Audit — Agent Identity Builder (re-run / deepen surface)
Update the agent's identity through an interactive interview, any time after bootstrap. This skill does NOT generate files from scratch and does NOT write identity prose itself: it records the user's answers into the shared answer bank, then lets the bootstrap render engine produce the files. That keeps one source of truth — `state/interview.json` — no matter which surface (first-boot bootstrap, this skill, a future re-audit) collected the answers.
**IMPORTANT:** Content comes from the USER'S OWN ANSWERS, recorded verbatim. NEVER invent, embellish, or default an identity answer. The render gate structurally refuses until required answers exist and were read back and confirmed by the human.
Contract
This skill guarantees:
- Answers land in the shared bank via `gbrain bootstrap interview --set KEY "value"`
(verbatim, one key per answer; `--skip KEY` records an explicit decline).
- The read-back ritual runs before any render: `--show` the full answer set,
mirror it to the user, then `--confirm <hash>` with the hash `--status` printed. Confirming a set the user never saw fails by design.
- Files re-render through the ONE render path:
`gbrain bootstrap render --only SOUL.md --force` (repeat per file). `--force` backs the old file up under `.gbrain-bootstrap-backups/<ts>/` first — nothing is clobbered without a recoverable copy.
- Each phase is independent and re-runnable; updating one answer and
re-rendering one file is a complete, valid run.
The command loop
gbrain bootstrap interview --show # what the bank holds now (start here)
gbrain bootstrap interview --set KEY "..." # record one updated answer, verbatim
gbrain bootstrap interview --skip KEY # explicit decline for an optional key
gbrain bootstrap interview --status # gate + read-back hash
gbrain bootstrap interview --confirm <hash> # after reading answers back to the user
gbrain bootstrap render --only SOUL.md --force
Render targets: `SOUL.md`, `USER.md`, `ACCESS_POLICY.md`, `HEARTBEAT.md`, `AGENTS.md` (re-render whichever files the changed keys feed). In an OpenClaw workspace the `HEARTBEAT.md` target writes `SCHEDULES.md`, because OpenClaw 2026.10.6+ removes a workspace `HEARTBEAT.md`; render detects the workspace, or pass `--host openclaw`.
Phases (each independent, each re-runnable)
Phase 1: Identity Interview
Ask: "What is this agent to you? Research partner? Executive assistant? Thinking partner? All of the above?" Keys: `AGENT_NAME`, `AGENT_PURPOSE`, `SOUL_RELATIONSHIP`. Renders: SOUL.md.
Phase 2: Vibe Calibration
Show 3-4 communication style examples:
- **Formal:** "I've prepared a comprehensive analysis of the situation..."
- **Direct:** "Here's what's happening. Three things matter."
- **Technical:** "The root cause is in the connection pooling. Here's the fix."
- **Casual:** "Yeah so basically the thing is broken because X. Easy fix."
Ask which feels right; also ask for a reply that made them wince and why. Keys: `VOICE_REGISTER`, `SOUL_WINCE`, `SOUL_MODE_DEFAULT`. Renders: SOUL.md.
Phase 3: Mission Mapping
Ask: "What are your top 3-5 goals? What are you trying to accomplish?" Keys: `AGENT_TOP_JOBS`, `SOUL_GOOD_OUTPUT`, `SOUL_WORLDVIEW`. Renders: SOUL.md, AGENTS.md.
Phase 4: User Profile
Ask: "Tell me about yourself. What do you do? What are you working on? Who are the key people in your world?" Keys: `PRINCIPAL_NAME`, `PRINCIPAL_CONTEXT`, `PRINCIPAL_TIMEZONE`. Renders: USER.md.
Phase 5: Boundaries
Ask: "Who should have access to your brain? Are there people who should see some but not all? Anyone to keep out entirely?" Key: `ACCESS_TIERS` (and review the standing-disclosure sections). Renders: ACCESS_POLICY.md.
Phase 6: Operational Cadence
Ask: "How often should the agent check in? Morning briefing? End of day summary? What recurring jobs do you want?" Keys: `HEARTBEAT_CADENCE`, `QUIET_HOURS`. Renders: HEARTBEAT.md (SCHEDULES.md on OpenClaw). Jobs ship disabled — enable one at a time after a manual dry run (the ritual is in the rendered file).
Run `gbrain bootstrap interview --init` first if the bank does not exist yet (a workspace that never ran bootstrap); it prints the full question list.
Output Format
Report exactly what changed: which keys were updated, which files re-rendered, and where the backups landed. Example: "Soul audit: updated VOICE_REGISTER + SOUL_WINCE, re-rendered SOUL.md (backup in .gbrain-bootstrap-backups/...). Re-run any phase anytime."
When it fails
Follow the [agent operator protocol](../conventions/agent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:
- `gbrain bootstrap interview --confirm <hash>` fails: the hash must come from a read-back the user actually saw. Re-run `gbrain bootstrap interview --status`, read the answers back, and confirm only with the user's agreement.
- Rendering refuses because required answers are missing: ask the user for them; never fill identity answers yourself.
Anti-Patterns
- Writing identity prose yourself instead of recording the user's words into
the bank (the render engine is
Read more
name: soul-audit version: 2.0.0 description: | Re-run or deepen the agent's identity interview. Drives the SHARED bootstrap answer bank (state/interview.json) via `gbrain bootstrap interview --set/--show/--confirm`, then re-renders the identity files with `gbrain bootstrap render --only <FILE> --force`. One answer store, two surfaces: first-boot bootstrap and this re-run skill write the same bank, so an updated answer flows into SOUL.md, USER.md, ACCESS_POLICY.md, and HEARTBEAT.md without hand-editing rendered files. Every answer is the user's own words — never invented. triggers: - "soul audit" - "customize agent" - "who am I" - "set up identity" - "change my agent's personality" tools: - shell mutating: true
Soul Audit — Agent Identity Builder (re-run / deepen surface)
Update the agent's identity through an interactive interview, any time after bootstrap. This skill does NOT generate files from scratch and does NOT write identity prose itself: it records the user's answers into the shared answer bank, then lets the bootstrap render engine produce the files. That keeps one source of truth — `state/interview.json` — no matter which surface (first-boot bootstrap, this skill, a future re-audit) collected the answers.
**IMPORTANT:** Content comes from the USER'S OWN ANSWERS, recorded verbatim. NEVER invent, embellish, or default an identity answer. The render gate structurally refuses until required answers exist and were read back and confirmed by the human.
Contract
This skill guarantees:
- Answers land in the shared bank via `gbrain bootstrap interview --set KEY "value"`
(verbatim, one key per answer; `--skip KEY` records an explicit decline).
- The read-back ritual runs before any render: `--show` the full answer set,
mirror it to the user, then `--confirm <hash>` with the hash `--status` printed. Confirming a set the user never saw fails by design.
- Files re-render through the ONE render path:
`gbrain bootstrap render --only SOUL.md --force` (repeat per file). `--force` backs the old file up under `.gbrain-bootstrap-backups/<ts>/` first — nothing is clobbered without a recoverable copy.
- Each phase is independent and re-runnable; updating one answer and
re-rendering one file is a complete, valid run.
The command loop
gbrain bootstrap interview --show # what the bank holds now (start here) gbrain bootstrap interview --set KEY "..." # record one updated answer, verbatim gbrain bootstrap interview --skip KEY # explicit decline for an optional key gbrain bootstrap interview --status # gate + read-back hash gbrain bootstrap interview --confirm <hash> # after reading answers back to the user gbrain bootstrap render --only SOUL.md --force
Render targets: `SOUL.md`, `USER.md`, `ACCESS_POLICY.md`, `HEARTBEAT.md`, `AGENTS.md` (re-render whichever files the changed keys feed). In an OpenClaw workspace the `HEARTBEAT.md` target writes `SCHEDULES.md`, because OpenClaw 2026.10.6+ removes a workspace `HEARTBEAT.md`; render detects the workspace, or pass `--host openclaw`.
Phases (each independent, each re-runnable)
Phase 1: Identity Interview
Ask: "What is this agent to you? Research partner? Executive assistant? Thinking partner? All of the above?" Keys: `AGENT_NAME`, `AGENT_PURPOSE`, `SOUL_RELATIONSHIP`. Renders: SOUL.md.
Phase 2: Vibe Calibration
Show 3-4 communication style examples:
- **Formal:** "I've prepared a comprehensive analysis of the situation..."
- **Direct:** "Here's what's happening. Three things matter."
- **Technical:** "The root cause is in the connection pooling. Here's the fix."
- **Casual:** "Yeah so basically the thing is broken because X. Easy fix."
Ask which feels right; also ask for a reply that made them wince and why. Keys: `VOICE_REGISTER`, `SOUL_WINCE`, `SOUL_MODE_DEFAULT`. Renders: SOUL.md.
Phase 3: Mission Mapping
Ask: "What are your top 3-5 goals? What are you trying to accomplish?" Keys: `AGENT_TOP_JOBS`, `SOUL_GOOD_OUTPUT`, `SOUL_WORLDVIEW`. Renders: SOUL.md, AGENTS.md.
Phase 4: User Profile
Ask: "Tell me about yourself. What do you do? What are you working on? Who are the key people in your world?" Keys: `PRINCIPAL_NAME`, `PRINCIPAL_CONTEXT`, `PRINCIPAL_TIMEZONE`. Renders: USER.md.
Phase 5: Boundaries
Ask: "Who should have access to your brain? Are there people who should see some but not all? Anyone to keep out entirely?" Key: `ACCESS_TIERS` (and review the standing-disclosure sections). Renders: ACCESS_POLICY.md.
Phase 6: Operational Cadence
Ask: "How often should the agent check in? Morning briefing? End of day summary? What recurring jobs do you want?" Keys: `HEARTBEAT_CADENCE`, `QUIET_HOURS`. Renders: HEARTBEAT.md (SCHEDULES.md on OpenClaw). Jobs ship disabled — enable one at a time after a manual dry run (the ritual is in the rendered file).
Run `gbrain bootstrap interview --init` first if the bank does not exist yet (a workspace that never ran bootstrap); it prints the full question list.
Output Format
Report exactly what changed: which keys were updated, which files re-rendered, and where the backups landed. Example: "Soul audit: updated VOICE_REGISTER + SOUL_WINCE, re-rendered SOUL.md (backup in .gbrain-bootstrap-backups/...). Re-run any phase anytime."
When it fails
Follow the [agent operator protocol](../conventions/agent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:
- `gbrain bootstrap interview --confirm <hash>` fails: the hash must come from a read-back the user actually saw. Re-run `gbrain bootstrap interview --status`, read the answers back, and confirm only with the user's agreement.
- Rendering refuses because required answers are missing: ask the user for them; never fill identity answers yourself.
Anti-Patterns
- Writing identity prose yourself instead of recording the user's words into
the bank (the render engine is
Other skills on gbrain.
More skills from other plugins.
agent-cost-report
Believable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude…
bot-handoff
Keep a durable record of work passed between Bots in the shared Hindsight memory bank. Use when handing work to another Bot, when…
mempalace
Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…
mempalace
Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…
Questions about soul-audit.
- Which coding agents can use soul-audit?
- soul-audit installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

