nutcrackertestgpt
by @giulianomorse
Privacy-first UX research ethnography for OpenClaw. Use when asked to observe OpenClaw usage over time, extract local session data and conversations, analyze...
clawhub install nutcrackertestgptπ About This Skill
name: openclaw-ux-ethnographer description: Privacy-first UX research ethnography for OpenClaw. Use when asked to observe OpenClaw usage over time, extract local session data and conversations, analyze behavior/workflow friction, and generate daily local-only reports with metrics, insights, anonymized evidence, and next-day research plans.
OpenClaw UX Ethnographer
Follow this workflow every time this skill is invoked.
Non-Negotiable Guardrails
{baseDir}/references/redaction-rules.md to raw exports, report content, and chat snippets.Supported Invocations
Generate today's OpenClaw UX ethnography report
- Analyze my OpenClaw usage for the last 24 hours
- Run the daily UXR report
/openclaw_ux_ethnographer run
- /openclaw_ux_ethnographer window=24h
- /openclaw_ux_ethnographer purge
- /skill openclaw-ux-ethnographer Analyze my OpenClaw usage for the last 24 hoursInterpret missing options as action=run and window=last_24h.
Step 1: Consent and Setup
1. Check {baseDir}/state.json.
2. If missing, ask exactly:
- Do you consent to local OpenClaw UX research capture? (yes/no)
- Capture level: minimal, snippets, or full?
- Retention window in days? (default 14)
- Scope: all sessions for this agent, or only this session?
3. If consent is no, write {baseDir}/state.json with consent denied and stop.
4. If consent is yes, write {baseDir}/state.json with:
- consent_granted (boolean)
- capture_level (minimal|snippets|full)
- retention_days (integer, default 14)
- scope (all_agent_sessions|this_session_only)
- created_at, updated_at (ISO 8601)
5. Reuse saved settings on later runs unless the user explicitly changes them.
Step 2: Parse Requested Action
run (default): collect, analyze, and report.setup: re-run consent questions and update {baseDir}/state.json.purge: delete local research artifacts in {baseDir} (see Step 8).status: report current settings and latest report paths.Step 3: Resolve Time Window
last 7d, since YYYY-MM-DD, or start/end.report_date as the local date for the window end.Step 4: Collect Raw Data (Local Only)
Use this order:
1. Preferred path with built-in OpenClaw session tools.
- List candidate sessions updated in the window (sessions_list).
- For each relevant session, fetch history with tool messages when available (sessions_history).
2. Fallback path from local transcript files when session tools are unavailable.
- Read standard paths from {baseDir}/references/fallback-session-paths.md.
- Parse sessions.json index and per-session transcript files (*.jsonl) best effort.
- If fallback paths are inaccessible, continue with available data and document the limitation.
3. Optional supplemental source when available.
- If local gateway logs are present and readable, extract only UX-relevant operational signals (errors, retries, permission denials, tool failures) into the same normalized stream.
- Treat gateway logs as optional; do not fail the run when missing.
Normalize records into an event stream with:
event_iddate, timesession_key (hashed when possible; otherwise stable pseudonym such as session_01)channel, event_typeturn_index, roletool_name, tool_statuserror_flag, retry_flag (best effort)minimal: no raw text; store high-level summary labels only
- snippets: one redacted excerpt only, max 200 characters
- full: full redacted textWrite outputs:
{baseDir}/data/YYYY-MM-DD/raw_events.jsonl{baseDir}/data/YYYY-MM-DD/sessions_index.jsonStep 5: Redact Before Persisting
{baseDir}/references/redaction-rules.md before writing any event or report.[REDACTED_API_KEY].snippets, truncate after redaction to 200 characters maximum.Step 6: Analyze as UX Ethnography
Use qualitative and behavioral methods:
event_id and session_key valuesCompute metrics (proxy-based; name assumptions explicitly):
Produce:
Step 7: Write Report Outputs
1. Use {baseDir}/references/report-template.md.
2. Write markdown report to {baseDir}/reports/YYYY-MM-DD.md.
3. Write JSON summary conforming to {baseDir}/references/summary-schema.json to {baseDir}/reports/YYYY-MM-DD.summary.json.
4. In chat, return:
- short executive summary
- absolute paths to saved files
- a Next-Day Research Plan section
Step 8: Retention and Purge
run, delete artifacts older than retention_days from {baseDir}/data/ and {baseDir}/reports/.purge action:{baseDir}/data/ and {baseDir}/reports/
- keep {baseDir}/state.json unless user asks for full reset
purge full action:{baseDir}/data/, {baseDir}/reports/, and {baseDir}/state.jsonLocal Install, Refresh, and Publish
Install into a workspace skill directory:
mkdir -p /skills
cp -R ./openclaw-ux-ethnographer /skills/openclaw-ux-ethnographer
Refresh skills after install:
Ask your OpenClaw agent: refresh skills
Optional daily schedule with OpenClaw cron:
openclaw cron add --name "Daily OpenClaw UXR Report" --cron "5 8 * * *" --tz "America/Los_Angeles" --session isolated --message "Generate today's OpenClaw UX ethnography report for the last 24 hours using openclaw-ux-ethnographer." --no-deliver
ClawHub publish example:
clawhub publish ./openclaw-ux-ethnographer --slug your-skill-slug --name "Your Skill Name" --version 0.1.0 --tags latest --changelog "Initial release"
Reference docs: