← Back to Skills Marketplace
ico1036

Identity Compass

by Jkim · GitHub ↗ · v0.5.0 · MIT-0
cross-platform ⚠ suspicious
194
Downloads
0
Stars
0
Active Installs
10
Versions
Install in OpenClaw
/install identity-compass
Description
Hyper-personalized decision compass that extracts your values and choices as vectors from everyday conversations, computes your true life direction (H vector...
README (SKILL.md)

Identity Compass 🧭

대화에서 의사결정 벡터를 추출하고, 스핀/자기장 물리 모델 + 베이지안 업데이트로 **H 벡터(목표 방향)**와 **M(정렬도)**를 계산하는 초개인화 나침반.

핵심 개념

  • H 벡터 = 사용자의 궁극적 방향 (자기장). Phase 1 변증법으로 추출.
  • 구슬(v_i) = 개별 의사결정 스핀. 각각 방향·가중치·정렬도를 가짐.
  • M(자화도) = 모든 구슬이 H와 얼마나 정렬되었는가. 0~1.

Phase 1: H 벡터 추출 (변증법적 대화)

직접 "목표가 뭐예요?"라고 묻지 않는다. 모순, 감정 반응, 반복 주제에서 역추론한다.

대화 시작 안내 (첫 세션에서만)

"몇 가지 질문을 드릴 건데, 언제든 '그만', '다음으로', '충분해'라고 하시면 거기서 멈추고 바로 지금까지 파악된 내용으로 정렬도를 계산해드릴게요."

변증법 대화 유형 (순서대로)

  1. 딜레마형 — 긴장을 만들어 가치관 드러냄
  2. 시점 이동형 — 메타 관점 활성화 ("5년 전의 당신이 지금 당신을 본다면?")
  3. 모순 짚기형 — 불일치 명시해 정교화 유도
  4. 완료형 — "사실 이미 답을 알고 있지 않나요?"

7개 핵심 차원 상세 프로토콜: references/dialectical-protocol.md

H 벡터 구성

H:
  core_values: ["자율적 사고", "깊이 있는 연구"]     # 반복 등장 가치
  anti_values: ["단순 실행", "타인 시선 의존"]        # 거부 반응 보인 것
  direction: [0.85, 0.70, 0.90]                      # 3D 단위벡터
  domain_weights:                                      # 삶의 영역별 중요도
    career: 0.8
    family: 0.6
    health: 0.5
    finance: 0.4
    growth: 0.7
  confidence: 0.65                                     # 0~1, 대화 쌓일수록 상승
  one_liner: ""                                        # 본질 포착 한 줄 (아래 참조)
  last_updated: "2026-03-22"

confidence \x3C 0.4이면 정렬도 계산 전에 대화를 더 진행한다.

H 한 줄 요약 원칙

가치 나열이 아닌, 그 사람의 본질을 포착하는 문장 하나.

  • ❌ "가족 시간, 자율성, 안정을 중시함"
  • ✅ "안정보다 자율을 택하되, 가족과 함께할 수 있는 삶의 속도를 지키는 사람"

3D 축 정의

  • X축: 자율성(+) ↔ 구조(-) — autonomy vs structure
  • Y축: 깊이(+) ↔ 폭(-) — depth vs breadth
  • Z축: 혁신(+) ↔ 안정(-) — innovation vs stability

Phase 2: 구슬 등록 & 베이지안 업데이트

벡터 수집 프로토콜

매 대화에서 의사결정/가치 판단 관찰 시 추출:

what: "무엇을 선택/거부/선호했는가"
why_surface: "사용자가 말한 이유"
why_essence: "LLM이 판단한 근본 이유"
direction: [x, y, z]     # 3D 단위벡터
intensity: 0.0-1.0       # 반응 강도
confidence: 0.0-1.0      # 추출 확신도
weight: 1-10             # 구슬 가중치 (아래 기준표)
domain: "career"         # 삶의 영역
timestamp: "2026-03-22"

구슬 가중치(w) 자동 평가 기준표

기준 낮음 (1-3) 중간 (4-6) 높음 (7-10)
재무적 변화 커피값 월급 10% 집/직장/투자
시간적 구속 하루 수개월 수년 이상
비가역성 쉽게 취소 번복 비용 있음 되돌리기 매우 어려움
감정 강도 무덤덤 불안/기대 강한 두려움/흥분
언급 빈도 처음 나옴 2-3회 언급 반복적으로 언급

구슬 감쇄 규칙

  • 6개월 이상 + 가중치 3 이하 → "오래된 구슬" 태그, 영향력 절반
  • 일반 시간 감쇄: decay = 0.95^(days/30) (월 5%)

베이지안 업데이트

posterior ∝ prior × likelihood

각 차원을 Beta(α, β) 분포로 모델링. 상세: references/bayesian-update.md

정렬도(M) 계산

alignment_i = cos(v_i, H) - overlap(v_i, anti_values)
M = Σ(w_i × alignment_i) / Σ(w_i)

M 해석:

  • +0.7 ~ +1.0: 강하게 정렬 — "나침반이 목표를 가리키고 있어요"
  • +0.3 ~ +0.7: 대체로 맞음 — "약간의 조정이 있으면 더 선명해질 것 같아요"
  • -0.3 ~ +0.3: 혼돈 — "여러 방향을 동시에 잡으려 하고 있어요"
  • -0.7 ~ -0.3: 역행 — "현재 패턴이 목표와 반대 방향이에요"
  • -1.0 ~ -0.7: 강하게 역행 — "중요한 무언가를 재검토할 시점이에요"

Phase 3: 새로운 의사결정 지원

사용자가 새 선택을 고민할 때:

  1. 선택지 A, B를 각각 가상 구슬로 변환
  2. ΔM_A = M(현재 + A), ΔM_B = M(현재 + B) 계산
  3. 결과 전달:

"[선택지 A]를 가상으로 추가했을 때, 전체 정렬도가 [현재 M] → [M+A]로 변합니다. [선택지 B]는 [M+B]가 됩니다. [A/B]가 [구체적 가치들]과 더 잘 맞습니다. 다만 [주의할 점]은 지켜봐야 할 것 같아요."


백그라운드 신호 감지 레이어

모든 대화에서 상시 작동. 사용자는 인식하지 못한다.

신호 유형 예시 발화 해석
부러움 "그 사람처럼 살고 싶다" 언급된 삶의 방식 → H 후보
피로/거부 "이건 정말 못 하겠어" 해당 가치 → anti_values 강화
몰입 "시간 가는 줄 몰랐어" 해당 활동 → core_values 강화
반복 언급 같은 주제 3회 이상 가중치 높은 구슬 후보
감정 극단 강한 불안·흥분·후회 해당 구슬 가중치 상향
모순 발화 이전 발언과 충돌 H confidence 하향, 재탐색 필요

저장: obsidian-vault/compass/signals/raw_signals.md에 조용히 누적. 신호 5개 이상 누적 시 /update를 자연스럽게 제안: "최근 대화에서 몇 가지 패턴이 보이던데, 한번 나침반 업데이트해볼까요?"


커맨드

/compass — 전체 시각화

scripts/visualize_spins.html을 렌더링. 사양:

  • 흰 배경 + 초록 H 필드라인 (자기장 방향)
  • H 고정 화살표 (사용자 조절 불가)
  • 각 구슬: 크기=가중치(w), 색=정렬도(보라/주황/회색), 화살표=v_i 방향, 점선 호=H와의 각도 차
  • 호버 시 스프링 애니메이션 + 툴팁 (정렬도·가중치·방향각)
  • 구슬 클릭 → 해당 구슬 분석 대화 트리거
  • 하단: H 배지 + 한 줄 요약 + 신뢰도 + 마지막 업데이트
  • 우하단: M 수치 오버레이

/update — H 업데이트 & 구슬 재평가

세션 대화형. 순서:

  1. 무의식 신호 요약: 최근 raw_signals를 보여줌 "최근 대화에서 이런 신호들을 감지했어요:
    • '그 사람 보면 솔직히 부럽다' → 창의적 자율성 방향 신호
    • '요즘 너무 피곤해' → 과도한 야근 반가치 강화 신호"
  2. H 업데이트 확인: 승인 → H 재계산, 수정 요청 → 변증법 추가 탐색
  3. 구슬 재평가: 오래된 구슬 재검토 제안 "'야근 수락' 구슬이 등록된 지 3개월이 됐어요. 지금도 같은 방향인가요?"
  4. /compass 자동 실행으로 마무리

출력 모드

1. 나침반 모드 🧭

축적된 벡터의 궁극적 방향 + H 한 줄 요약 + M 수치

2. 이력서 모드 📄

벡터 기반 강점/서사 생성 → obsidian-resume-brain 연동 클러스터에서 핵심 강점 3-5개 추출, 구체적 사례와 함께 서사화

3. 회사 매칭 모드 🏢

회사 JD/문화를 벡터화 → 사용자 벡터와 코사인 유사도 계산 → company-fit-research 연동

4. 의사결정 보정 모드 ⚖️

현재 선택 방향과 H의 각도 계산 + Phase 3 가상 구슬 시뮬레이션

5. 자화도 리포트 📊

전체 정렬도 + 클러스터별 분석 + 시각화


Obsidian Vault 구조

obsidian-vault/compass/
  prior/              ← Phase 1 토론 결과
  vectors/            ← 개별 구슬(벡터) 노트
  clusters/           ← 상위 방향성 클러스터
  signals/            ← 백그라운드 감지 신호
    raw_signals.md    ← 누적 신호 로그
  magnetization.md    ← H + M + posterior
  timeline.md         ← 방향성 변화 히스토리
  _MOC.md             ← compass 전체 조망

벡터 노트 형식

---
type: vector
date: 2026-03-19
what: "execution-heavy 거부"
why_surface: "단순 실행 역할은 재미없다"
why_essence: "자율적 사고 > 지시 수행"
direction: [0.8, -0.6, 0.3]
intensity: 0.9
confidence: 0.85
weight: 7
domain: career
cluster: "[[autonomy-first]]"
tags: [career, preference, anti]
---

스크립트

스크립트 용도
scripts/export_vectors.py vault 벡터 노트 → vectors.json
scripts/calculate_magnetization.py 자화도 계산 → magnetization.json + .md
scripts/visualize_2d.html 2D 인터랙티브 시각화 (다크 테크 테마)

자동화 파이프라인 (필수)

에이전트는 벡터를 추출할 때마다 아래 전체 파이프라인을 실행해야 한다. 수동 개입 없이, 대화 속에서 자동으로 완료되어야 함.

트리거 조건

  • 새 의사결정/선호/거부/가치 시그널 감지 시
  • /update 커맨드 실행 시
  • Phase 1 완료 시

파이프라인 단계

1. 시그널 감지 → 벡터 추출
2. Obsidian vault에 벡터 노트 생성/업데이트
3. vectors.json 업데이트 (전체 벡터 목록)
4. magnetization.json 재계산 (H, M, clusters)
5. compass_data.json 자동 생성 ← ⚠️ 이 단계를 빠뜨리지 말 것!

Step 5: compass_data.json 자동 생성

vectors.json + magnetization.json → compass_data.json 변환. 시각화(visualize_2d.html)가 이 파일을 로드하므로 반드시 갱신.

생성 규칙:

# vectors.json의 각 벡터를 identity/opportunities로 분류
identity_beads = []   # domain이 career/growth/life이고 기회(회사)가 아닌 것
opportunity_beads = [] # 회사/포지션 관련 벡터

for v in vectors:
    bead = {
        "what": v["what"],
        "why": v["why_essence"],
        "dir": v["direction"],
        "w": v["weight"],
        "cl": classify_color(v),  # 아래 기준 참조
        "status": v.get("status", "")
    }
    if is_opportunity(v):
        bead["match"] = cosine_similarity(v["direction"], H["dir"])
        opportunity_beads.append(bead)
    else:
        identity_beads.append(bead)

compass_data = {
    "identity": identity_beads,
    "opportunities": opportunity_beads,
    "H": {"dir": magnetization["magnetization_vector"], "mag": magnetization["magnetization_magnitude"]},
    "oneLiner": magnetization.get("H_one_liner", ""),
    "clusters": [
        {"name": name.upper(), "m": c["magnetization"], "color": cluster_colors[name]}
        for name, c in magnetization["clusters"].items()
    ]
}

색상 분류 기준 (cl 필드):

cl 값 조건
identity 개인 정체성/가치 벡터 (회사가 아님)
hot 기회 + cosine match ≥ 0.85
active 기회 + 이미 지원/제출 완료
warm 기회 + match 0.65~0.85
tension 기회 + H와 방향 충돌 있음 (match \x3C 0.6이면서 weight ≥ 6)
cool 기회 + match 0.5~0.65
avoid 기회 + match \x3C 0.5 또는 anti-value 충돌

클러스터 색상 기본값:

{
  "autonomy-first": "#00c8ff",
  "depth-builder": "#a855f7",
  "innovation-drive": "#00ff88"
}

저장 위치

모든 JSON 파일은 scripts/ 디렉토리에 저장:

scripts/
├── vectors.json          # 전체 벡터 목록
├── magnetization.json    # H + M + clusters
├── compass_data.json     # 시각화용 (자동 생성)
├── sample_data.json      # 데모용 (수정 금지)
└── visualize_2d.html     # 시각화 UI

⚠️ 에이전트 필수 행동: 벡터를 추가/수정할 때마다 Step 3→4→5를 반드시 순차 실행. compass_data.json이 없거나 오래되면 시각화가 빈 화면 또는 구버전을 보여준다.



주의사항

  • H는 절대 확정적으로 선언하지 않는다. "지금까지 대화에서 느낀 건..." 식으로 잠정 표현.
  • M 수치는 정밀 계산이 아닌 추정임을 숨기지 않는다.
  • 결정을 내려주지 않는다. 정렬도 정보를 주고 판단은 사용자에게 돌린다.
  • 변증법 대화를 불편해하면 즉시 전환한다.
  • H가 시간이 지나며 바뀔 수 있음을 자연스럽게 다룬다. "예전과 원하는 게 달라진 것 같아요" 신호 감지 → H 업데이트 제안.
Usage Guidance
What to consider before installing: - Privacy tradeoff: This skill is designed to run continuously and collect 'signals' from your conversations and persist them in an Obsidian vault (raw_signals.md, vectors, magnetization.md, compass_data.json). That behavior is coherent with its purpose but is privacy-sensitive. If you don't want conversation fragments logged to disk, do NOT install or disable its background detection. - Inspect the files yourself: Before enabling the skill in production, open the scripts (export_vectors.py, calculate_magnetization.py) and README to verify exactly what is written and where. The code is local and readable (no obfuscated network calls), so you can confirm there's no unexpected remote exfiltration. - Vault location: The default path is ~/.openclaw/workspace/obsidian-vault/compass. Make sure that path is not a symlink into a cloud-synced folder (Dropbox, Google Drive, iCloud, etc.) if you want the data to remain strictly local. - Consent and transparency: The SKILL.md explicitly says the signal detector runs 'users do not notice' and 'stores raw_signals quietly.' If you share your device or agent with others, be aware data collection happens silently. If you want to use the tool, consider changing the workflow so the agent asks permission before adding new raw signals or use a manual '/update' flow only. - Test locally first: Create the suggested vault directories in a safe test folder, run export_vectors.py and calculate_magnetization.py manually with sample data, and serve the visualization locally to see what is stored and displayed. - Remove data on uninstall: If you decide to uninstall, manually delete the vault files (signals, vectors, magnetization, compass_data.json) because they are persistent. Consider adding encryption or keeping the vault outside any automatic backups. - Minor docs mismatch: The SKILL.md references a different visualization filename (visualize_spins.html) than the file provided (visualize_2d.html); confirm the visualization path before running. Summary action checklist: 1) Review the two scripts and README locally. 2) Create the vault in an isolated folder (not cloud-synced). 3) Confirm and, if desired, modify the agent to require explicit user confirmation before storing raw_signals. 4) If you accept persistent local logs of conversation signals, proceed; otherwise decline.
Capability Analysis
Type: OpenClaw Skill Name: identity-compass Version: 0.5.0 The identity-compass skill is a sophisticated personal analytics tool designed to map user values and decision-making patterns using physics-inspired models. It processes data locally within an Obsidian vault and uses Python scripts (scripts/export_vectors.py and scripts/calculate_magnetization.py) to calculate alignment scores and generate visualization data. While the SKILL.md describes 'background signal detection' that operates without explicit user prompts, this behavior is a documented core feature for passive value extraction and lacks any indicators of malicious intent, such as data exfiltration, credential theft, or unauthorized remote execution.
Capability Assessment
Purpose & Capability
High coherence: the code and instructions implement the described purpose (extracting vectors from conversations, computing H/M, storing to an Obsidian vault, local visualization). No unrelated credentials or external binaries are requested. Small inconsistency: SKILL.md refers to 'scripts/visualize_spins.html' while the package provides 'visualize_2d.html' (minor documentation mismatch).
Instruction Scope
The SKILL.md explicitly describes a background 'signal detection layer' that runs across all conversations and 'stores raw_signals' in obsidian-vault/compass/signals/raw_signals.md 'quietly' (user not aware). The runtime instructions and included scripts read and write multiple local files (vectors.json, magnetization.json, magnetization.md, raw_signals.md) and will run automatically when the skill is invoked by the agent. While this behavior matches the stated goal (continuous pattern collection), it is privacy-sensitive because it captures conversation-level signals silently and persists them to disk.
Install Mechanism
No install spec is provided (instruction-only), and the included Python scripts are local and simple. There are no third-party downloads, no URL-based installers, and no build steps that would fetch remote code. The README suggests git clone or npx clawhub (standard). Overall low install risk.
Credentials
The skill requires no environment variables, no credentials, and no external services. Requested filesystem paths are limited to an Obsidian-compatible vault under ~/.openclaw/workspace/obsidian-vault/compass which is coherent with the promised local-storage design. No extraneous secrets or cloud tokens are requested.
Persistence & Privilege
The skill does not set always:true and asks for no special platform privileges, but it does create and update persistent files inside the user's Obsidian vault location (raw_signals.md, vector notes, magnetization.md, compass_data.json). This is normal for a local memory/integration skill but increases privacy blast radius because conversation-derived signals are stored persistently. The agent's autonomous invocation (default) means the skill can collect and write without explicit per-run confirmations.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install identity-compass
  3. After installation, invoke the skill by name or use /identity-compass
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.5.0
Identity Compass v0.5.0 Changelog - Overhauled SKILL.md description for clarity and global audience appeal (now in English, concise triggers/use-cases). - Core functionality and algorithms remain unchanged. - All key details, protocols, and technical documentation are preserved for user reference.
v0.4.1
## identity-compass 0.4.1 - SKILL.md major update: expanded explanations, examples, YAML snippets, and protocol details. - Clarified key concepts for H 벡터, 구슬(벡터) 등록, 베이지안 업데이트, 및 정렬도(M) 계산. - Documented full automation pipeline, file formats, JSON transform logic, and cluster color mapping. - Added concise instructions for command triggers, output modes, background signal logging, and manual/automatic update flows. - Significantly enhanced documentation readability and implementation guidelines without changing the core protocol logic.
v0.4.0
- Added Korean (README_KO.md) and Chinese (README_ZH.md) documentation for multilingual support. - No changes to core logic or feature set; documentation only. - Users can now access key instructions and concepts in Korean and Chinese.
v0.3.1
identity-compass 0.3.1 Changelog - Major SKILL.md refactor to clarify onboarding: added an explicit, always-on automation pipeline section. - Defined step-by-step pipeline for automatic vector extraction, vault update, and data syncing after each decision signal. - Documented new requirement: generation and update of compass_data.json as an output combining vectors and magnetization for visualization scripts. - Outlined precise rules for bead classification, coloring, and clustering to enable more robust identity/opportunity matching and opportunity ranking. - Updated script section: replaced 3D visualization with a new 2D interactive visualization, now using a dark-tech theme.
v0.3.0
### identity-compass v0.3.0 - README.md majorly expanded with full protocol and usage details, including detailed phase descriptions and YAML templates. - Comprehensive explanation of H 벡터(목표 방향), 구슬(v_i), and M(정렬도) concepts. - Step-by-step guides for direction extraction, Bayesian updating, decision support, and signal detection. - Added command overviews for /compass (visualization) and /update (H vector/session update). - Detailed integration points and markdown vault structure provided for easier adoption.
v0.2.1
identity-compass 0.2.1 - 삭제된 중간 산출물: scripts/magnetization.json, scripts/vectors.json 파일을 제거하여 불필요한 아티팩트 정리 - 문서 추가: 사용법과 핵심 컨셉을 안내하는 README.md 문서 추가 - 코드 및 시스템 로직 변화 없음 - 사용자 및 개발자 모두에게 가독성 및 저장소 관리 향상
v0.2.0
**Identity Compass 0.2.0 – Breaking Change: Always-on background signals, command and integration updates** - 백그라운드 신호 감지가 opt-in 옵션에서 기본 상시 감지로 변경되었습니다. - 사용자가 "나침반"이나 "정렬" 등 명시적 표현 없이도, 주요 의사결정 맥락이면 항상 스킬이 트리거됩니다. - `/compass` 시각화 명령이 `visualize_2d.html`에서 `visualize_spins.html`(3D, Three.js)로 변경되었습니다. - 이력서/회사 매칭 관련 모드에서 **obsidian-resume-brain** 및 **company-fit-research** 등 외부 스킬 연동 방식이 명확히 표기되었습니다. - 불필요한 문서/README가 제거되고, 샘플 데이터(JSON) 파일들이 추가되어 구조가 간결해졌습니다.
v1.1.0
Background detection now opt-in (off by default), added English SKILL_EN.md, privacy-first consent model
v1.0.1
Remove personal skill references, make generic for all users
v1.0.0
Identity Compass 1.0.0 — 첫 정식 버전 출시 - 대화에서 가치관/의사결정 패턴을 3D 벡터로 추출, Obsidian vault에 축적 - 물리 기반(스핀/자기장) + 베이지안 업데이트를 통한 목표 방향(H 벡터) 및 정렬도(M) 계산 - 변증법적 대화, 백그라운드 신호 감지, 의사결정 시뮬레이션 등 다층적 분석 지원 - 시각화 기능(/compass), 방향성 업데이트(/update), 주요 리포트와 다양한 출력 모드 제공 - obsidian-resume-brain, company-fit-research 등 외부 연동 지원 - 사용자 몰입/불편 신호에 따른 자연스러운 경험 전환 및 안내
Metadata
Slug identity-compass
Version 0.5.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 10
Frequently Asked Questions

What is Identity Compass?

Hyper-personalized decision compass that extracts your values and choices as vectors from everyday conversations, computes your true life direction (H vector... It is an AI Agent Skill for Claude Code / OpenClaw, with 194 downloads so far.

How do I install Identity Compass?

Run "/install identity-compass" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Identity Compass free?

Yes, Identity Compass is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Identity Compass support?

Identity Compass is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Identity Compass?

It is built and maintained by Jkim (@ico1036); the current version is v0.5.0.

💬 Comments