Agent Skills: Sophia (σοφία)

Discover your philosophical tradition through behavioral dimension analysis and philosopher matching.

UncategorizedID: jongwony/epistemic-protocols/sophia

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jongwony/epistemic-protocols/tree/HEAD/epistemic-cooperative/skills/sophia

Skill Files

Browse the full folder contents for sophia.

Download Skill

Loading file tree…

epistemic-cooperative/skills/sophia/SKILL.md

Skill Metadata

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

  1. Compute similarity score for each philosopher against the user's profile
  2. Identify the top match (highest similarity) and runner-up
  3. 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:

  1. Introduction: 2-3 sentence accessible summary (who is this philosopher, why you match) before the hero card
  2. Hero: Philosopher name + tradition + archetype subtitle
  3. Radar chart: 6-dimension profile as visual (CSS-only, no JS library)
  4. Match analysis: Why this philosopher, in 3-4 bullet points
  5. 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.
  6. Protocol affinity: Recommended protocols with one-line rationale
  7. 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.