Personal Operations MVP Graph Schema
1. 범위
MVP는 Career + Time Operating System에 집중한다. 따라서 스키마도 아래 질문을 먼저 풀 수 있어야 한다.
- 지금 내 시간은 실제로 어디에 쓰이고 있는가
- 목표와 약속은 어디서 충돌하는가
- 이직, 창업 준비, 사이드 프로젝트 같은 선택의 비용은 무엇인가
- 실행 가능성을 떨어뜨리는 핵심 제약은 무엇인가
중요한 전제:
- 이 문서는
MVP subset schema다. - 전체 canonical ontology는 personal-operations-ontology.md와 personal-operations-entity-inventory.md에 정의한다.
- 즉 MVP에 없다고 해서 ontology에서 제외되는 것은 아니다.
2. MVP 엔티티 집합
| 엔티티 | 필수 필드 |
|---|---|
Person | id, name, kind, relationship_to_user |
Organization | id, name, kind |
Goal | id, title, horizon, status, priority |
Project | id, title, status, owner_id |
Task | id, title, status, effort_estimate_hours |
Commitment | id, title, status, hard_deadline, importance |
Decision | id, title, deadline, status, stakes |
Option | id, decision_id, name, status, time_horizon |
Resource | id, name, resource_type, current_value, unit |
Constraint | id, title, constraint_type, severity, status |
CalendarEvent | id, title, start_at, end_at, source_app |
Conversation | id, title, channel, occurred_at, source_app |
Document | id, title, doc_type, updated_at, source_app |
FinancialEvent | id, event_type, amount, currency, occurred_at |
Metric | id, name, value, unit, measured_at |
Outcome | id, title, result_type, observed_at |
EvidenceItem | id, source_type, source_id, observed_at, confidence |
MVP에서 생략하지만 canonical에는 포함되는 대표 엔티티:
HealthSignalMealWorkoutSleepSessionRelationshipFollowUpEnvironmentFactorDeviceAppPolicyRiskAssumptionSensitivityFactor
3. 공통 베이스 필드
모든 엔티티는 아래 공통 필드를 가진다.
| 필드 | 설명 |
|---|---|
id | 전역 식별자 |
created_at | 시스템 생성 시각 |
updated_at | 마지막 갱신 시각 |
status | 현재 상태 |
privacy_level | 민감도 |
confidence | 추출 또는 계산 신뢰도 |
source_refs | 원본 출처 목록 |
4. 필수 관계 집합
MVP에서는 관계를 최소화하되, 결정에 직접 필요한 것만 남긴다.
| 관계 | source | target | 의미 |
|---|---|---|---|
owns | Person | Goal/Project/Decision | 사용자가 소유함 |
has_role | Person | Organization | 특정 조직에서 역할 보유 |
supports | Resource/Person/Habit | Goal/Project | 달성 지원 |
blocks | Constraint/Commitment | Goal/Project/Option | 실행 방해 |
depends_on | Task/Project/Decision | Task/Project/Commitment | 의존성 |
requires | Goal/Option/Project | Resource/Commitment | 필요 조건 |
conflicts_with | Commitment/CalendarEvent/Option | Commitment/Goal/CalendarEvent | 충돌 |
scheduled_for | Task/Commitment | CalendarEvent | 시간 배정 |
costs | Option/Project | Resource | 자원 소모 |
improves | Option/Habit | Metric | 메트릭 개선 |
worsens | Option/Habit | Metric | 메트릭 악화 |
evidenced_by | Goal/Decision/Constraint/Outcome | EvidenceItem | 근거 연결 |
led_to | Decision/Option | Outcome | 결과 연결 |
communicated_in | Decision/Commitment/Opportunity | Conversation | 관련 대화 |
5. 엔티티별 최소 속성 제안
Goal
titledescriptionhorizon:weekly,quarterly,yearly,multi_yearpriority: 1-5success_criteria
Project
titleproject_type:work,personal,side,familystatusowner_iddeadline
Commitment
titlecommitment_type:work,family,financial,socialhard_deadlineimportancerepeating
Decision
titlecontextdeadlinereversibilitystakesstatus
Option
namedescriptiontime_horizonexpected_upsideexpected_downsideuncertainty
Resource
resource_type:cash,time,energy,skill,network,attentioncurrent_valueunit
Constraint
constraint_type:time,money,energy,contract,relationshipseveritystatus
6. 입력 소스와 매핑
| 입력 소스 | 생성 엔티티 | 생성 관계 |
|---|---|---|
| Calendar | CalendarEvent, Commitment | scheduled_for, conflicts_with |
Conversation, Commitment, Opportunity, EvidenceItem | communicated_in, evidenced_by | |
| Notes | Document, Goal, Decision, Hypothesis | evidenced_by, supports |
| Task app | Task, Project, Commitment | depends_on, owns |
| Bank CSV | FinancialEvent, Resource, Metric | costs, led_to |
| Health data | HealthSignal, Metric, Constraint | worsens, supports |
7. 계산 계층
그래프 위에 아래 계산 결과를 별도 Metric 또는 derived state로 저장한다.
RunwayMonthsWeeklyCommittedHoursDeepWorkHoursPerWeekContextSwitchLoadFreeCashFlowExecutionLoadStressLevelGoalAlignmentScore
이 값들은 agent가 자연어로 추론하기 전에 먼저 계산되어야 한다.
8. 시나리오 적용 규칙
옵션을 시뮬레이션할 때는 실 그래프를 직접 바꾸지 않고 scenario copy에 개입을 적용한다.
예시:
Option: start startup prepcosts -> cash -3000/monthrequires -> deep_work_hours +8/weekconflicts_with -> recurring late meetingsimproves -> career_momentum +worsens -> stress_level +
이 개입을 기준 상태와 비교해 메모를 만든다.
9. 저장 모델 제안
MVP는 아래 구조면 충분하다.
raw_events: 원본 이벤트 저장entities: 정규화된 노드 저장edges: 정규화된 관계 저장metrics: 계산 결과 시계열 저장scenarios: 시뮬레이션 입력과 출력 저장decision_memos: 사용자가 읽는 브리핑 저장
초기 구현은 Postgres + graph-like edge table로도 가능하고, 이후 필요 시 그래프 DB를 붙일 수 있다.
10. 성공 기준
이 스키마는 아래 세 가지를 실제로 할 수 있어야 유효하다.
- 캘린더와 태스크만 연결해도 시간 충돌과 실행 과부하를 계산할 수 있다.
- 노트와 이메일을 연결해도 결정 관련 근거를 요약할 수 있다.
- 은행 내역과 일정 데이터를 함께 보면 특정 옵션의 런웨이 변화를 설명할 수 있다.