- 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>
88 lines
6.5 KiB
JSON
88 lines
6.5 KiB
JSON
[
|
|
{
|
|
"id": "dopamine_reset",
|
|
"title": "도파민 리셋 (Dopamine Fast/Reset)",
|
|
"what": "30일간 표적 행동(및 관련 자극)을 완전 제거하여 D2/D3 수용체 민감도와 도파민 baseline을 회복.",
|
|
"why": "중독성 자극은 베이스라인 도파민의 상대적 결손(deficit)을 만든다 (pleasure-pain balance). 며칠로는 부족하고 약 4주가 인간에서 baseline 복원 평균치 (Lembke). 첫 10~14일이 가장 힘들다 (withdrawal peak).",
|
|
"dose": "최소 30일 연속. 1회 lapse 시 카운트 리셋(엄격) 또는 'Never miss twice'(완화) — 사용자가 사전 선택.",
|
|
"how": [
|
|
"D-3일: 모든 트리거(앱·물건·계정·구독·접근권) 사전 제거 또는 차단.",
|
|
"D-1일: If-Then 카드 3개 작성. 예: 'If 평일 22시 충동, then 30분 산책 + 차가운 물 한 잔.'",
|
|
"D1~D14: 매일 1회 짧은 NSDR (10~20분) — withdrawal기 자율신경 안정.",
|
|
"D15~D30: T1(3회 스트릭)·T2(주) 마일스톤 보상 적용.",
|
|
"D31: 재평가. (a) 영구 단절, (b) 의식적 재도입(다른 변수·맥락에서), (c) 연장 중 선택."
|
|
],
|
|
"check": "○/공백 2값 트래커. 매일 30초.",
|
|
"applicable_break_categories": ["alcohol", "nicotine", "porn_masturbation", "social_media", "sugar", "cannabis", "behavioral"],
|
|
"reference_ids": ["ref_book_lembke_dopamine_nation", "ref_doi_10_1016_j_neuropharm_2008_05_022"]
|
|
},
|
|
{
|
|
"id": "urge_surf",
|
|
"title": "충동 서핑 (Urge Surfing)",
|
|
"what": "충동을 억누르거나 싸우지 않고 파도처럼 관찰하며 통과시킨다. 평균 충동의 신경학적 peak는 90초~몇 분이며 능동적 거부 없이 흘러간다.",
|
|
"why": "사고 억제(suppression)는 ironic process로 충동 강도를 키운다 (Wegner). 관찰 기반 수용(mindfulness-based)이 재발률을 유의하게 낮춤 (Bowen 2014).",
|
|
"dose": "1회 90초~5분. 하루 충동 발생 횟수만큼.",
|
|
"how": [
|
|
"충동 인지 → 멈춤. '지금 충동 한 파도가 왔다'고 라벨링.",
|
|
"신체 감각 스캔: 어디에 느낌이 있나? (가슴·목·복부·손) 강도 0~10.",
|
|
"호흡 5회 — cyclic sighing (이중 들숨 + 긴 날숨) 권장.",
|
|
"60~90초 관찰. 강도 재측정. 보통 절반 이하로 감소.",
|
|
"사전 If-Then 행동으로 전환 (산책, 물 마시기, 사람에게 메시지 등)."
|
|
],
|
|
"check": "트래커에 '충동 N회 / 통과 N회' 기록. 비율이 시간 따라 상승.",
|
|
"applicable_break_categories": ["alcohol", "nicotine", "porn_masturbation", "social_media", "sugar", "caffeine", "cannabis", "behavioral"],
|
|
"reference_ids": ["ref_doi_10_1001_jamapsychiatry_2013_4546", "ref_doi_10_1037_0033_295X_101_1_34", "ref_doi_10_1016_j_xcrm_2022_100895"]
|
|
},
|
|
{
|
|
"id": "environment_design",
|
|
"title": "환경 디자인 (Environment Design / Self-Binding)",
|
|
"what": "충동에 의지하지 않고 물리·디지털 환경에서 표적 행동의 마찰을 극대화 (Atomic Habits 4법칙 역적용: Invisible · Difficult).",
|
|
"why": "의지력은 한정 자원이며 환경이 행동을 결정하는 비율이 훨씬 크다 (Wood & Neal 2007). Lembke의 self-binding = 미래 자신을 보호하기 위해 현재 자신이 장벽을 설계.",
|
|
"dose": "한 번 세팅 + 분기 1회 점검.",
|
|
"how": [
|
|
"물질(술/담배/대마): 집·차에서 완전 제거 + 단골 매장 변경 + 동거인에게 알림.",
|
|
"포르노/자위: DNS 차단(NextDNS·Cloudflare Family) + 라우터 레벨 + 침실에서 단말 분리.",
|
|
"SNS/숏폼: 앱 삭제(웹만 사용) + 스크린타임 제한 + 홈스크린 1페이지 화이트리스트 + 흑백 모드.",
|
|
"설탕: 집·책상에서 제거 + 식료품은 식후에만 구매 + 충동 시 단백질 30g 먼저.",
|
|
"카페인: 디카페인 옵션 항상 가시 + 14시 이후 카페인 무자동 (kitchen rule)."
|
|
],
|
|
"check": "'환경 점수' 자가 평가 (1-5). 매주 1회.",
|
|
"applicable_break_categories": ["alcohol", "nicotine", "porn_masturbation", "social_media", "sugar", "caffeine", "cannabis", "behavioral"],
|
|
"reference_ids": ["ref_doi_10_1037_0033_295X_114_4_843", "ref_book_clear_atomic_habits", "ref_book_lembke_dopamine_nation"]
|
|
},
|
|
{
|
|
"id": "relapse_recovery",
|
|
"title": "재발 복구 프로토콜 (LEARN)",
|
|
"what": "1회 lapse를 재앙화하지 않고 데이터로 처리해 다음 24시간 안에 복귀.",
|
|
"why": "AVE(Abstinence Violation Effect, Marlatt) — '한 번 무너졌으니 끝났다' 인지가 본격 폭주로 이어지는 진짜 원인. 1회는 데이터, 2회 연속이 패턴.",
|
|
"dose": "lapse 후 24시간 안에 5단계 완료.",
|
|
"how": [
|
|
"Label — 'lapse 발생. 실패가 아닌 데이터.' (자기비판 차단)",
|
|
"Examine — 직전 HALT 체크: Hungry · Angry · Lonely · Tired 중 무엇이 있었나?",
|
|
"Antecedent — 트리거 3개 적기 (시간/장소/사람/감정/직전 행동).",
|
|
"Replan — If-Then 1개 추가 또는 환경 디자인 1개 추가.",
|
|
"Next — 다음 1회 즉시 실행(같은 시간대 또는 24시간 안). 'Never miss twice.'"
|
|
],
|
|
"check": "lapse 일지 (날짜 + LEARN 5칸). 월 1회 패턴 리뷰.",
|
|
"applicable_break_categories": ["alcohol", "nicotine", "porn_masturbation", "social_media", "sugar", "caffeine", "cannabis", "behavioral"],
|
|
"reference_ids": ["ref_book_marlatt_relapse_prevention", "ref_doi_10_1037_0003_066X_59_4_224"]
|
|
},
|
|
{
|
|
"id": "recovery_stack",
|
|
"title": "회복 스택 (Recovery Stack)",
|
|
"what": "끊기 기간 동안 도파민 baseline 회복과 자율신경 안정을 동시에 지원하는 5종 행동 묶음.",
|
|
"why": "끊기는 결손만 만들지 않게 하려면 충전원이 필요. Huberman의 자연 도파민 부스터들은 baseline을 깎지 않고 받쳐줌.",
|
|
"dose": "끊기 기간 동안 매일 5종.",
|
|
"how": [
|
|
"아침 햇빛 10~30분 — 도파민·코티솔 정상화.",
|
|
"운동 (Zone 2 30분 또는 근력 20분) — BDNF·도파민·세로토닌.",
|
|
"저녁 NSDR/Yoga Nidra 10~20분.",
|
|
"Cyclic sighing 5분/일 — 자율신경 안정·기분 개선.",
|
|
"소셜 컨택 1회 — Lembke의 'honest 1-person check-in', radical honesty가 회복률 예측인자."
|
|
],
|
|
"check": "5칸 일일 트래커. 끊기 기간 동안만.",
|
|
"applicable_break_categories": ["alcohol", "nicotine", "porn_masturbation", "social_media", "sugar", "cannabis", "behavioral"],
|
|
"reference_ids": ["ref_podcast_hl_84_sleep_toolkit", "ref_doi_10_1016_j_xcrm_2022_100895"]
|
|
}
|
|
]
|