| name | sophia |
| description | Discover your philosophical tradition through behavioral dimension analysis and philosopher matching. |
Sophia (σοφία)
Discover your philosophical tradition through behavioral pattern analysis.
φιλο-σοφία = "love of wisdom"
Your conversation patterns carry the fingerprint of a philosophical tradition.
When to Use
Invoke this skill when:
- Exploring which philosophical tradition your AI conversation patterns resemble
- Analyzing behavioral dimensions across sessions for epistemic style profiling
- Generating a visual philosopher match profile card
Skip when:
- Analyzing strengths and structural costs (use /curses instead)
- Quick single-protocol question (answer directly)
- No session history exists and user prefers manual exploration
Pipeline
| Phase | What | Mode |
|---|
| 1. Collect | Gather behavioral data from sessions | dimension-profiler agent |
| 2. Match | Map dimension profile to philosophers | AI analysis |
| 3. Present | Dual-layer result + protocol affinity | Gate interaction |
| 4. Report | Generate HTML profile card | Automated |
Phase 1: Data Collection
Same-session reuse: If dimension-profiler output is already available in this
conversation (from a prior /sophia or /curses run), skip Phase 1 entirely and
reuse that output. Both skills produce identical profiler results.
Two-step delegation: first run coverage-scanner for pre-aggregated data, then pass
the result to dimension-profiler for dimension scoring. This avoids duplicate file
reading and gives the profiler access to protocol usage counts.
Step 1: Run coverage-scanner agent (see agents/coverage-scanner.md):
Aggregate facets, session-meta, and slash command data across all sessions.
Return structured coverage data including protocol_counts, friction_summary,
session_type_distribution, tool_counts, and satisfaction_distribution.
Step 2: Pass coverage output to dimension-profiler agent (see agents/dimension-profiler.md):
Analyze this user's behavioral dimensions from their session data.
coverage_data: [paste coverage-scanner output here]
data_sources:
rules_dir: ~/.claude/rules/
claude_md: ~/.claude/CLAUDE.md
settings_json: ~/.claude/settings.json
data_context: session-enriched
Return the dimension profile table with scores, confidence, and raw signals.
When coverage_data is provided, omit sample_size — the profiler derives
dimensions from aggregate data and does not sample raw files.
If coverage-scanner returns no data (new user with no sessions), skip Step 1 and
run dimension-profiler with data_sources only (rules + CLAUDE.md). Note reduced
confidence in results.
Phase 2: Philosopher Matching
Read references/philosophers.md for the full philosopher database.
Matching process
- Compute similarity score for each philosopher against the user's profile
- Identify the top match (highest similarity) and runner-up
- For the top match, identify:
- Primary alignment: Which dimension drives the match
- Divergence points: Where the user differs from the philosopher
- Protocol affinity: Which epistemic protocol aligns with this tradition
Confidence levels
| Data quality | Match confidence |
|---|
| 20+ facets sampled, all dimensions measured | High |
| 10-19 facets, most dimensions measured | Medium |
| <10 facets or rules-only analysis | Low — note limitations |
Phase 3: Presentation
Present the match progressively — start with an accessible introduction, then build
to detailed analysis. Users may not know the philosopher; the opening should stand
on its own without assumed knowledge.
Step 1: Introduction (always show first)
A warm, 2-3 sentence introduction that explains the match in plain language:
Your thinking patterns most resemble the tradition of [Philosopher Name]
([dates], [tradition in one phrase]).
[1-2 sentences: what this philosopher is known for, in terms a non-philosopher
would understand. Connect to the user's actual behavior — not abstract philosophy.]
Similarity: 0.XX | Runner-up: [Name] (0.XX)
Step 2: Dimension profile with explanations
Show dimensions with human-readable explanations (from dimension-profiler output)
so users understand what each bar means:
──────────────────────────────────────
D1 How you approach problems: ████████░░ 78 (hypothesis-first)
D2 How much you check: █████████░ 85 (thorough)
D3 How you interact: ██████░░░░ 62 (moderate)
D4 How you govern work: █████████░ 91 (systematic)
D5 Where you focus: ████████░░ 78 (exploring unknowns)
D6 How you use AI: █████████░ 88 (distributed thinking)
──────────────────────────────────────
Protocol affinity: /[command] ([protocol name] — [Greek])
Step 3: User choice
What would you like to explore?
1. **Deep dive** — Why this tradition fits your patterns, and what it reveals
2. **Compare** — Side-by-side with the runner-up
3. **Protocol** — Try the suggested protocol now
4. **Report** — Generate HTML profile card
Phase 4: Report Generation
If the user selects "Report", generate an HTML profile card.
Report structure
Read the existing CSS design system from ~/.claude/usage-data/report.html or
use the design tokens from the cooperative's dashboard/report templates.
Sections:
- Introduction: 2-3 sentence accessible summary (who is this philosopher, why you match) before the hero card
- Hero: Philosopher name + tradition + archetype subtitle
- Radar chart: 6-dimension profile as visual (CSS-only, no JS library)
- Match analysis: Why this philosopher, in 3-4 bullet points
- Dimension breakdown: Each dimension with score bar, human-readable explanation, measurement basis, and meaning. Use the explanation column from dimension-profiler output (e.g., "How you approach problems") as subtitle for each bar.
- Protocol affinity: Recommended protocols with one-line rationale
- Runner-up: Brief comparison showing where profiles diverge
File: Save to
~/.claude/usage-data/sophia-profile.html
Open in browser: open <filepath>
CSS radar chart (no JS dependency)
Use CSS clip-path: polygon(...) with computed vertices for a hexagonal radar chart.
Each vertex position is calculated from the dimension score (0-100 mapped to center-to-edge).
Edge Cases
- New user (<5 sessions): Analyze rules/CLAUDE.md only. Present as "Early profile —
based on configuration, not yet behavioral data." Confidence: Low.
- Balanced profile (all 40-60): Use composite archetypes from philosophers.md.
Present as "The Balanced Practitioner (Aristotelian phronesis)" with explanation
that balance itself is a philosophical position.
- No clear match (all similarities <0.55): Present top 2 as "Your profile
doesn't strongly align with a single tradition — you may be synthesizing
multiple approaches." Offer composite archetype.
- Missing dimensions: If a dimension can't be computed (no data), mark as
"unmeasured" and exclude from matching. Note which dimensions are missing.