- Drift 21 tables (8 catalog + 11 user + habit_dose_variants + meta_kv) with R1~R10 CHECK constraints and 19 indexes - 8 hand-crafted seed JSON catalogs in app/assets/seed/ (refs 84, protocols 34, methodologies 21, frame_patterns 30, reward_menu_items 30, break_protocols 8, common_frames 5, diet_patterns 5) - 6 domain functions: recommend_variant, compute_streak, validate_frame_level, active_habit_quota, weekly_minimum_ratio, seed_importer (transactional, idempotent) - 4 vertical-slice Riverpod screens: HabitList, HabitCreate, CheckIn, Streak - 31 unit tests passing; flutter analyze clean - OQ-5 streak semantics: missing entry ≠ explicit blank (missing = end of history; only TrackerValue.blank triggers Never-miss-twice) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
285 lines
12 KiB
JSON
285 lines
12 KiB
JSON
[
|
||
{
|
||
"id": "alcohol",
|
||
"category": "alcohol",
|
||
"title": "알코올 끊기",
|
||
"huberman_summary": "'안전한 음주량은 없다' — 주당 ≥ 2잔에서도 회백질 감소 등 측정 가능한 변화 (Topiwala 2017, Daviet 2022). 코티솔 baseline 상승, REM 수면 파괴, 장-뇌축 손상.",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "평일 저녁 21시 이후 탄산수 + 라임 의식" },
|
||
{ "level": "L2", "text": "회식 시 첫 잔 무알콜로 시작하기" },
|
||
{ "level": "L3", "text": "나는 평일 무알콜인 사람이다" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "주간 잔 수 50% 감축",
|
||
"environment_design": "집에 술 1병만 보관",
|
||
"if_then_examples": ["If 18시, then 탄산수+라임"]
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "평일 0잔",
|
||
"environment_design": "평일용 무알콜 음료 5종 준비",
|
||
"if_then_examples": ["If 회식, then 첫잔 무알콜"]
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "주말 1일만, ≤ 2잔",
|
||
"environment_design": "술 → 작은 잔으로 교체",
|
||
"if_then_examples": ["If 두 잔째 충동, then 90초 urge surf"]
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "30일 전체 0잔 (도파민 리셋)",
|
||
"environment_design": "모든 술 집 밖으로",
|
||
"if_then_examples": ["If 결혼식 등, then 사전 계획"]
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "urge_surf", "environment_design", "relapse_recovery", "recovery_stack"],
|
||
"medical_warning": "매일 다량 음주자(예: 일일 ≥ 4-5잔 × 수년)의 갑작스러운 중단은 진전·발작·DT로 사망 가능. 반드시 의사 감독 하 점진 감량.",
|
||
"reference_ids": ["ref_doi_10_1136_bmj_j2353", "ref_doi_10_1038_s41467_022_28735_5"]
|
||
},
|
||
{
|
||
"id": "nicotine",
|
||
"category": "nicotine",
|
||
"title": "니코틴 끊기 (담배·전자담배·파우치)",
|
||
"huberman_summary": "니코틴 자체는 인지 부스터지만 전달체(담배·vape)의 독성과 도파민 강화 곡선이 문제. Quit aids 효과 순위: Varenicline > NRT 조합 > NRT 단독 > 의지력 단독 (Cochrane 메타분석).",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "휴식 시간엔 밖에서 5분 호흡 + 햇빛" },
|
||
{ "level": "L3", "text": "나는 폐가 깨끗한 러너다" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "Quit Date 정하기 (2~4주 후) + 트리거 매핑",
|
||
"if_then_examples": ["If 식후 충동, then 5분 산책"]
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "약물 보조 시작 (의사 상담)",
|
||
"environment_design": "Varenicline / Bupropion / NRT (패치+껌 조합)"
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "Quit Date — 첫 72시간 풀스택",
|
||
"environment_design": "라이터·재떨이·담배 잔여 모두 제거",
|
||
"if_then_examples": ["If 충동, then NSDR + 운동 + 햇빛"]
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "2주~3개월 점진 감소",
|
||
"if_then_examples": ["If 커피 시간 충동, then cyclic sighing"]
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "urge_surf", "environment_design", "relapse_recovery", "recovery_stack"],
|
||
"tools": ["Varenicline (Champix)", "Bupropion", "NRT 패치+껌 조합"],
|
||
"medical_warning": "심혈관 질환·임신 시 약물 보조(Varenicline 등) 처방 의사 상담 우선.",
|
||
"reference_ids": ["ref_doi_10_1002_14651858_CD013229_pub2"]
|
||
},
|
||
{
|
||
"id": "porn_masturbation",
|
||
"category": "porn_masturbation",
|
||
"title": "포르노·강박적 자위 줄이기",
|
||
"huberman_summary": "초자극(supernormal stimuli)은 도파민 peak 후 baseline을 깎는다. frequency · intensity · novelty 세 축 모두를 동시에 제공하는 것이 문제. 자위 자체는 일반적으로 정상 행동, 문제는 빈도·강박성·기능 손상.",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "주말 아침 운동 후 1회까지 (개인 합의된 빈도)" },
|
||
{ "level": "L2", "text": "혼자만의 시간엔 샤워 + 독서 30분" },
|
||
{ "level": "L3", "text": "나는 실제 친밀감을 우선하는 사람이다" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "DNS 필터 + 라우터 차단",
|
||
"environment_design": "NextDNS Family + Cloudflare 1.1.1.1 for Families"
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "침실 디바이스 분리",
|
||
"environment_design": "충전은 거실에서"
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "30일 dopamine reset (절제)"
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "novelty 자극 영구 차단, 본인 관계 또는 단순 자기자극만 의식적 재도입"
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "urge_surf", "environment_design", "relapse_recovery"],
|
||
"tools": ["NextDNS", "Cloudflare 1.1.1.1 for Families", "CleanBrowsing", "iOS Screen Time", "Android Family Link", "Cold Turkey", "Covenant Eyes", "Accountable2You"],
|
||
"medical_warning": "no-fap 류 커뮤니티의 비과학적 주장(테스토스테론 1000% 증가 등)은 근거 없음. Huberman은 absolute abstinence가 아닌 자기조절·강박성 감소·관계 우선을 강조.",
|
||
"reference_ids": ["ref_doi_10_1111_add_13297", "ref_podcast_hl_39_dopamine"]
|
||
},
|
||
{
|
||
"id": "social_media",
|
||
"category": "social_media",
|
||
"title": "SNS·숏폼·스마트폰 강박 줄이기",
|
||
"huberman_summary": "짧은 간격의 도파민 스파이크는 daytime baseline을 가장 빠르게 깎는다. 숏폼은 unpredictable reward schedule로 가장 강한 학습 곡선.",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "출근길 30분 오디오북 듣기" },
|
||
{ "level": "L2", "text": "취침 1시간 전 종이책 10분" },
|
||
{ "level": "L3", "text": "나는 깊이 집중하는 사람이다" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "앱 → 웹만 사용",
|
||
"environment_design": "Instagram·TikTok·YouTube 숏폼 앱 삭제"
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "홈스크린 1페이지 화이트리스트 (8개 이하)",
|
||
"environment_design": "흑백 모드 상시 (Settings → Accessibility → Color Filters)"
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "스크린타임 일일 30분 → 2주마다 -10분",
|
||
"if_then_examples": ["If 손이 폰으로 가면, then 3회 깊은 호흡 후 의도 라벨링"]
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "물리적 분리",
|
||
"environment_design": "침실 외부 충전, 책상에서 1m 이상"
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "urge_surf", "environment_design", "relapse_recovery", "recovery_stack"],
|
||
"tools": ["iOS Screen Time", "Android Digital Wellbeing", "Cold Turkey", "Freedom", "흑백 모드"],
|
||
"reference_ids": ["ref_doi_10_1257_aer_20190658"]
|
||
},
|
||
{
|
||
"id": "sugar",
|
||
"category": "sugar",
|
||
"title": "설탕·초가공 식품 줄이기",
|
||
"huberman_summary": "액상 과당이 가장 강하게 도파민·간 대사 동시 타격. 설탕 자극은 단백질·지방으로 대체 가능 — 포만감 신호 자체가 잘 살아남.",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "오후 3시엔 그릭요거트 + 베리 (단맛 + 단백질 + 폴리페놀)" },
|
||
{ "level": "L2", "text": "디저트는 외식 시에만 나눠 먹기" },
|
||
{ "level": "L3", "text": "나는 인슐린 감수성 좋은 사람" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "액상 과당 0순위 제거 (주스·소다·시럽 라떼)",
|
||
"environment_design": "집·책상 가시성 제거"
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "단백질-우선 30g 룰",
|
||
"if_then_examples": ["If 단맛 충동, then 단백질 30g 먼저 + 15분 대기"]
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "장보기 룰 정착",
|
||
"environment_design": "식후에만, 리스트만, 외곽(신선식품) 우선"
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "30일 reset 후 의식적 재도입 (주 1회 외식 디저트)"
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "environment_design", "relapse_recovery"],
|
||
"reference_ids": ["ref_doi_10_1002_oby_21371", "ref_url_who_sugar_2015"]
|
||
},
|
||
{
|
||
"id": "caffeine",
|
||
"category": "caffeine",
|
||
"title": "카페인 의존 감량",
|
||
"huberman_summary": "카페인 자체는 strategic하게 쓰면 인지·운동 도움. 문제는 기상 직후 섭취 (cortisol·아데노신 mismatch)와 14시 이후 섭취 (수면 파괴).",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "기상 후 90~120분 후 첫 커피" },
|
||
{ "level": "L2", "text": "14시 이후 디카페인" },
|
||
{ "level": "L2", "text": "오후 첫 음료 = 녹차 (L-theanine 동반)" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "평소 양 유지, 시간만 90분 지연 + 14시 컷오프",
|
||
"if_then_examples": ["If 기상 알람, then 물+소금 먼저"]
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "양 25% 감소 또는 1잔을 디카페인으로 대체"
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "추가 25% 감소"
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "안정화 (두통 등 금단은 보통 3-7일에 소실)"
|
||
}
|
||
],
|
||
"default_common_frames": ["urge_surf", "environment_design"],
|
||
"tools": ["디카페인 커피", "녹차 (L-theanine 동반)", "허브차"],
|
||
"reference_ids": ["ref_podcast_hl_101_caffeine", "ref_doi_10_5664_jcsm_3170"]
|
||
},
|
||
{
|
||
"id": "cannabis",
|
||
"category": "cannabis",
|
||
"title": "대마 끊기",
|
||
"huberman_summary": "THC는 PFC·해마·도파민 회로에 측정 가능한 영향. 청소년기 시작은 정신증 위험 증가 (Di Forti 2019). 빈도 사용자의 cessation은 첫 72시간 수면 파괴·짜증 peak.",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "저녁 의식은 카모마일 차 + 책 30분" },
|
||
{ "level": "L3", "text": "나는 REM 수면 좋은 사람" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "30일 reset 시작 + 첫 72시간 풀스택",
|
||
"environment_design": "모든 사용 도구 제거",
|
||
"if_then_examples": ["If 짜증/수면 문제, then 운동 + NSDR + cyclic sighing"]
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "Trigger 패턴 매핑 (시간·사람·장소)"
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "회복 스택 정착"
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "30일 후 의식적 결정 — 빈도·맥락 사전 합의된 경우에만 재도입 또는 영구 중단"
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "urge_surf", "environment_design", "relapse_recovery", "recovery_stack"],
|
||
"medical_warning": "정신증·양극성·심각한 불안 병력 있을 시 의료진 상담.",
|
||
"reference_ids": ["ref_doi_10_1016_S2215_0366_19_30048_3"]
|
||
},
|
||
{
|
||
"id": "behavioral",
|
||
"category": "behavioral",
|
||
"title": "행동 중독 (도박·쇼핑·게임)",
|
||
"huberman_summary": "가변비율 강화(variable ratio reinforcement)가 가장 강한 학습 곡선. 행동 중독은 물질 중독과 같은 도파민 회로 (Lembke).",
|
||
"frame_examples": [
|
||
{ "level": "L2", "text": "주말 오전엔 자전거 90분" },
|
||
{ "level": "L3", "text": "나는 저축률 높은 사람" },
|
||
{ "level": "L3", "text": "나는 PvE 협동 게이머" }
|
||
],
|
||
"phases": [
|
||
{
|
||
"week": 1,
|
||
"goal": "자금/계정 분리",
|
||
"environment_design": "도박 self-exclusion 등록 + 신용카드 등록 삭제 + 게임 결제 차단"
|
||
},
|
||
{
|
||
"week": 2,
|
||
"goal": "앱 삭제 + 알림 차단",
|
||
"if_then_examples": ["If 구매 충동, then 장바구니에 24시간 두기"]
|
||
},
|
||
{
|
||
"week": 3,
|
||
"goal": "30일 reset"
|
||
},
|
||
{
|
||
"week": 4,
|
||
"goal": "대체 dopamine source (운동·소셜·창작) + 재도입 시 한도 사전 선언"
|
||
}
|
||
],
|
||
"default_common_frames": ["dopamine_reset", "urge_surf", "environment_design", "relapse_recovery", "recovery_stack"],
|
||
"medical_warning": "한국도박문제예방치유원 1336.",
|
||
"reference_ids": ["ref_doi_10_1098_rstb_2008_0100", "ref_book_lembke_dopamine_nation"]
|
||
}
|
||
]
|