Docs
/
personality

@leumas adapter

Personality & psychometrics pack: score self-report questionnaires and look up types across the five most-used psychology frameworks — MBTI / Myers-Briggs (16 personality types, four dichotomies E/I...

@leumas adapter — personality

Psychometric-frameworks capability pack. Score self-report personality questionnaires and look up types across the five most-used psychology frameworks, then compare two types for heuristic compatibility. Pure, deterministic, zero npm dependencies (Node built-ins only). All framework data lives in data/frameworks.json.

Frameworks covered

KeyFrameworkOutput
mbtiMyers–Briggs Type Indicator4-letter type (e.g. INTJ) + per-axis breakdown
enneagramEnneagram of Personalitytype 1–9 + wing (e.g. 4w5) + ranked scores
bigFiveBig Five / OCEAN (five-factor)percentile scores for O, C, E, A, N
discDISC assessmentprimary/secondary style (e.g. DI) + percentages
loveLanguageThe Five Love Languagesprimary language + ranked profile

Tools

  • systems() — list every supported framework and its question count.
  • questions({ system }) — the quiz items for one system (to render a form).
  • mbti({ answers }) — score answers → 4-letter MBTI type + description, strengths, careers, breakdown.
  • enneagram({ answers }) — score answers → Enneagram type + wing + core desire/fear + ranked scores.
  • bigFive({ answers }) — score answers → OCEAN percentile scores + level (low/moderate/high) + descriptions.
  • loveLanguage({ answers }) — score answers → primary love language + ranked profile + tips.
  • disc({ answers }) — score answers → primary/secondary DISC style + percentage profile.
  • typeInfo({ system, type }) — rich lookup: description, strengths, weaknesses/watch-outs, careers.
  • compatibility({ system, typeA, typeB }) — heuristic compatibility score + factors (guidance, not prediction).

Every tool takes ONE args object (so an HTTP POST body maps 1:1) and returns a plain JSON object.

Answer shapes

answers accepts either an array aligned to questions(system).questions, or an object keyed by question id. Values may be a 1–5 Likert number, a boolean, or an agree/disagree string (also strongly agree, neutral, yes/no, etc.). Unanswered items are simply skipped.

import personality from './index.js';

// 1. get the items to show the user
const quiz = personality.adapters.questions({ system: 'mbti' });

// 2. score their answers (id-keyed here; an aligned array works too)
const result = personality.adapters.mbti({
  answers: { ei1: 5, ei3: 4, sn2: 5, sn4: 4, tf1: 5, tf3: 4, jp1: 5, jp3: 4 },
});
// -> { system: 'mbti', type: 'ENTJ', nickname: 'The Commander', description, strengths, careers, breakdown }

// 3. describe a type / compare two types
personality.adapters.typeInfo({ system: 'enneagram', type: 4 });
personality.adapters.compatibility({ system: 'mbti', typeA: 'INTJ', typeB: 'ENFP' });

DRY boundary

This pack is psychometrics — evidence-derived self-report frameworks with data-driven scoring that depend only on a person's own answers. It deliberately does not overlap the ecosystem's mystic / entertainment packs:

  • astrology — zodiac, natal charts, horoscopes (sign/date-based divination).
  • numerology — life-path / expression numbers from a name and birthdate.

There is no sign, date, or name math here, and none of those packs score questionnaires. If you need personality from answers, use personality; if you want zodiac/numerology novelty, use those.

Notes

  • Deterministic: the same answers always produce the same result; ties resolve by a stable,

documented order (MBTI ties favor the first pole; Enneagram/DISC/love-language ties favor the declared item order).

  • Not clinical. Results are for self-reflection, team-building, and guidance — not diagnosis or

prediction. Compatibility scores are heuristic.

Source shared/engines/adapters/domain/personality/README.md (no-git)markdownjson
Generated from the Leumas repository. Every page cites the file it came from.leumas.techllms.txt