MBTI Analyzer
by @kingofsoysauce
Analyze a user's MBTI from authorized OpenClaw memory, session history, and workspace notes. Use when the user asks for MBTI analysis, personality inference...
clawhub install mbti-analyzerπ About This Skill
name: mbti-analyzer description: Analyze a user's MBTI from authorized OpenClaw memory, session history, and workspace notes. Use when the user asks for MBTI analysis, personality inference without a questionnaire, an evidence-backed personality report, or a structured type hypothesis from historical conversations. version: 0.4.0 triggers: - "MBTI" - "personality analysis" - "type me" - "εζζη MBTI" - "ζ§ζ Όεζ" - "δΊΊζ Όζ₯ε" metadata: openclaw: commands: - command: mbti-report description: Generate an MBTI report from authorized historical data. clawdbot: emoji: "π§ " requires: bins: ["python3"]
MBTI
Generate an evidence-backed MBTI report from authorized OpenClaw history and workspace notes.
Quick Start
This package is a skill. The public handoff line for other agents lives in README.md.
Primary entry points:
MBTI, personality analysis, type membti-reportMinimal runtime requirement:
python3Local install for development or manual setup:
ln -s /absolute/path/to/mbti "$CODEX_HOME/skills/mbti"
Start an analysis by invoking the skill in chat:
Analyze my MBTI using only my authorized memory and session history
For agents and maintainers:
At A Glance
What this skill produces:
report.html: primary deliverablereport.md: compact summaryanalysis_result.json: type hypothesis, confidence, follow-up questionsevidence_pool.json: scored and traceable evidenceWhat the first interaction should do:
1. Discover candidate source categories. 2. Show the user what is available. 3. Ask which categories are authorized. 4. Run the extraction β evidence β inference β report pipeline.
Core Rule
Always separate the workflow into two layers:
1. Full extraction from authorized sources into structured records and an evidence pool. 2. MBTI inference only from the evidence pool and source summary.
Do not infer MBTI directly from the full raw history.
When To Use
Use this skill when the user wants:
Do not use this skill for clinical diagnosis or mental-health assessment.
Authorization First
Before reading any source content:
1. Run source discovery. 2. Show the user which source categories are available. 3. Explain that the report may quote short excerpts unless quoting is disabled. 4. Ask the user to confirm which source categories are allowed.
Default candidate categories:
MEMORY.mdmemory/*.md~/.openclaw/agents/*/sessions/*.jsonl~/.openclaw/memory/main.sqlite~/.openclaw/tasks/runs.sqlite~/.openclaw/cron/runs/*.jsonlDefault exclusions:
.envcredentials/*identity/*Execution Flow
If the user does not provide an output directory, write results to:
./.mbti-reports//
Recommended order:
1. Discover Candidate Sources
python3 {baseDir}/scripts/discover_sources.py \
--workspace-root . \
--openclaw-home ~/.openclaw \
--output /tmp/mbti-source-manifest.json
Use the manifest to explain what can be analyzed. Do not read content yet.
2. Ingest Authorized Sources
python3 {baseDir}/scripts/ingest_all_content.py \
--manifest /tmp/mbti-source-manifest.json \
--approved-source-types workspace-long-memory,workspace-daily-memory,openclaw-sessions \
--output-dir ./.mbti-reports/
This creates:
raw_records.jsonlsource_summary.json3. Build Evidence Pool
python3 {baseDir}/scripts/build_evidence_pool.py \
--raw-records ./.mbti-reports//raw_records.jsonl \
--source-summary ./.mbti-reports//source_summary.json \
--output ./.mbti-reports//evidence_pool.json
This stage should:
4. Infer MBTI From Evidence Pool
python3 {baseDir}/scripts/infer_mbti.py \
--evidence-pool ./.mbti-reports//evidence_pool.json \
--source-summary ./.mbti-reports//source_summary.json \
--output ./.mbti-reports//analysis_result.json
Inference rules:
If analysis_result.json contains needs_followup: true and the user is available to answer, ask the follow-up questions before finalizing the report.
5. Apply Follow-Up Answers And Rerun
After the user answers the low-confidence questions, rerun the pipeline with the answers incorporated as additional user evidence:
python3 {baseDir}/scripts/apply_followup_answers.py \
--raw-records ./.mbti-reports//raw_records.jsonl \
--source-summary ./.mbti-reports//source_summary.json \
--analysis ./.mbti-reports//analysis_result.json \
--output-dir ./.mbti-reports/ \
--answer "S/N=" \
--answer "J/P="
This updates:
raw_records.jsonlsource_summary.jsonfollowup_answers.jsonevidence_pool.jsonanalysis_result.jsonreport.mdreport.htmlIf the user declines to answer, keep the current report and surface the uncertainty explicitly.
6. Render Final Reports
python3 {baseDir}/scripts/render_report.py \
--analysis ./.mbti-reports//analysis_result.json \
--evidence-pool ./.mbti-reports//evidence_pool.json \
--output-dir ./.mbti-reports/ \
--quote-mode summary \
--open
Add --open to automatically open the HTML report in the default browser after rendering.
This creates:
report.mdreport.html7. Render A Standalone HTML Preview
When you only need to tune layout, CSS, spacing, or badge/theme behavior, use the built-in preview mode instead of rerunning discovery, ingestion, evidence construction, and inference:
python3 {baseDir}/scripts/render_report.py \
--debug-preview \
--debug-type INTP \
--output-dir /tmp/mbti-preview
This creates a fully populated report.html and report.md from a bundled fixture so report debugging does not depend on prior pipeline artifacts.
Stage Testing
When you want to test one stage in isolation, prepare a synthetic fixture for that stage and then run the real stage script against those files.
Prepare fixture inputs:
python3 {baseDir}/scripts/prepare_stage_fixture.py \
--stage infer \
--output-dir /tmp/mbti-stage-infer
Then run the stage you actually want to inspect:
python3 {baseDir}/scripts/infer_mbti.py \
--evidence-pool /tmp/mbti-stage-infer/evidence_pool.json \
--source-summary /tmp/mbti-stage-infer/source_summary.json \
--output /tmp/mbti-stage-infer/analysis_result.json
Supported fixture stages:
discover: generates synthetic workspace and OpenClaw source filesingest: adds source_manifest.jsonevidence: adds raw_records.jsonl and source_summary.jsoninfer: adds evidence_pool.jsonrender: adds analysis_result.jsonfollowup: adds answers_input.json for apply_followup_answers.pySmoke-test all stage entrypoints with:
python3 -m unittest tests.test_stage_smoke
Report Rules
The HTML report is the primary artifact. The chat reply should only provide:
Do not freestyle the full report in chat if report.html already exists.
Evidence Rules
Treat the following as high-risk pseudo-signals:
Treat the following as stronger evidence:
Read these references when needed:
Output Discipline
β‘ When to Use
π‘ Examples
This package is a skill. The public handoff line for other agents lives in README.md.
Primary entry points:
MBTI, personality analysis, type membti-reportMinimal runtime requirement:
python3Local install for development or manual setup:
ln -s /absolute/path/to/mbti "$CODEX_HOME/skills/mbti"
Start an analysis by invoking the skill in chat:
Analyze my MBTI using only my authorized memory and session history
For agents and maintainers: