A high-performance discovery engine built to map user personalities to the 12 classic male archetypes. Featuring a weighted scoring algorithm, multi-tier state management, and situational decision-tree logic. Designed with a focus on deep-dive UX and state-driven architecture for professional personality assessment.
Each archetype is represented as a vector in a 5-dimensional trait space — Independence, Empathy, Wisdom, Skills, and Creativity. When a user completes the assessment, their answers are aggregated per trait into a user vector. The engine then computes the weighted similarity between the user's vector and each of the 12 archetype vectors, where each archetype carries its own per-trait weight profile reflecting how strongly that archetype expresses each trait.
score(user, archetype) = Σ (user_trait_i × archetype_weight_i)
Every archetype's weight row sums to 1.0, so scores are directly comparable. The archetype with the highest weighted score is the primary match, and the full ranked list is also returned for context.
The assessment runs in one of three modes, each drawing from a balanced pool of 90 questions (30 per depth tier, six questions per trait per tier). On every visit, a session-scoped seed is generated and used to sample a fresh, trait-balanced subset, so users see new questions on each new session while in-progress answers are preserved across reloads.
-
Standard (10 questions) — Two per trait, sampled from the foundational tier of direct, present-tense self-assessment items.
-
Deep (20 questions) — Four per trait, sampled from the foundational tier plus a second tier of more reflective items that probe pattern-recognition and tradeoff thinking.
-
Deep Dive (30 questions) — Six per trait, drawing from all three depth tiers including the most conditional, second-order items that surface behavior under uncertainty and competing values.
The same scoring algorithm runs in every mode; deeper modes simply provide a higher-resolution signal.
This repository includes a standalone static archetype questionnaire in the docs/ folder so it can be published with GitHub Pages without depending on the Next.js app.
From the repository root, run one of these:
python3 -m http.server 4173 --directory docsnpx serve docs
Then open:
The workflow at .github/workflows/deploy-pages.yml deploys the docs/ folder automatically when main is updated.
In the repository settings on GitHub:
- Open Settings > Pages
- Set Source to GitHub Actions
After the next push to main, GitHub Pages will publish the static test site.