⚙️ ENGINE PROMPT ARCHITECTURE · 실제 프롬프트 정독본

코칭 편지가 어떻게 만들어지나
실제 프롬프트 라인바이라인

매일 새벽 한 통의 코칭 편지가 나오기까지, 엔진은 4단 파이프라인을 거칩니다. 계획·판단은 코드와 두뇌(DeepSeek V4-Pro)가, 글만 손(DeepSeek V4-Flash)이 — 이 문서는 두 개의 실제 프롬프트(2026-06-15 아린)를 한 줄도 빼지 않고 그대로 펼쳐, 각 블록이 무슨 데이터를 어디서 받아 무엇을 결정하는지 짚어 줍니다.

📚 문서 허브 › ⚙️ 엔진·데이터 명세 › 코칭 프롬프트 아키텍처  ·  갱신 2026-06-16 · 코드 기준 라이브
0

한눈 요약 — 편지 한 통의 제작 공정

Executive Summary
🔄 2026-06-16 — LLM 백엔드 DeepSeek 전환 · 기본 모델이 뇌(주간·일간)=DeepSeek V4-Pro, 손=DeepSeek V4-Flash로 교체됐습니다(DeepInfra 직접 호출·비중국·수수료 0). 프롬프트·파이프라인은 그대로(모델만 교체) — 아래 예시 프롬프트도 동일하게 적용됩니다. Claude(Sonnet/Haiku)는 DeepSeek 실패 시 자동 폴백(서킷브레이커)으로 발행을 보장하고, COACH_LLM=off로 강제 비활성(안전밸브)할 수 있습니다. 실측 비용·4모델 비교 = 코칭 LLM 모델 비교.

편지는 LLM이 즉흥으로 쓰는 게 아닙니다. 결정론(코드)이 아이의 식사 기록에서 영양·환경·거부 신호를 계산해 후보를 깔고, 🧠 두뇌(DeepSeek V4-Pro)가 그중 오늘의 각도를 고르고 추천을 검수하고, ✍️ 손(DeepSeek V4-Flash)은 정해진 각도·타깃·무브를 받아 따뜻한 문장으로 옮기기만 합니다. 두뇌·코드가 무엇을·왜, 손은 어떻게 쓸지만.

4
파이프라인
결정론 → 주간 두뇌 → 일간 두뇌 → 손
2
실제 프롬프트
🧠 일간 두뇌 · ✍️ 손
13
후보 시나리오
두뇌는 이 안에서만 고름
1115·201
음식 네트워크 엣지·노드
dietary4u 합산
전 자녀라이브
두뇌 가동
카나리아·플래그 제거
1+1~5
자녀당 LLM 콜
일간 1 · 손 1~5 · 주간 ¼(주1회)
📖 이 문서 읽는 법 — §1로 "편지 한 통이 어떤 4단계를 거치나"를 보고, §2·§3에서 두 개의 실제 프롬프트를 통째로 펼쳐 각 블록이 무엇을 받아 무엇을 결정하는지 짚습니다. §4는 2026-06-15 아린의 실제 숫자가 4단계를 통과해 편지가 되는 과정을, §5는 모든 데이터가 어디서 오는지를 한 표로 정리합니다. 프롬프트는 한 글자도 손대지 않은 원문입니다(< 같은 기호만 화면 표시용으로 변환).
1

전체 흐름 — 4단 파이프라인

Layered Pipeline

매일 새벽 크론이 자녀 한 명을 처리할 때, 편지는 아래 4단계를 차례로 통과합니다. 결정론이 사실·후보를 깔면, 두뇌가 두 층(주간 전략 → 일간 전술)에서 판단하고, 마지막에 손이 글로 옮깁니다. 두 LLM 프롬프트(③·④)가 이 문서의 주인공입니다.

1
결정론 — 코드가 사실·후보를 계산 코드(LLM 없음)
meal_logs(식사 기록)을 읽어 → 영양 신호등을 계산합니다: 8 식품군 충족/부족(집+기관 '전체' 다양성 평가 AND '집 끼니만' 부족을 따로) + 31 영양소 신호 + 구조화 입력(식감·자율성·식사환경·식사시간 — 부모가 칩으로 입력, 집 끼니만) + food-graph 추천 후보 + 13개 후보 시나리오(각 트리거 충족 여부를 수치로 계산). 여기까지는 환각이 0인 순수 계산입니다.
2
주간 두뇌 — 의사처럼 한 주를 종합 V4-Pro · 자녀당 주 1회
runWeeklyPlanning. 지난 4주를 진료하듯 읽어 이번 주의 주력 레버 1개(food / environment / autonomy / texture)·음식 타깃·부모 행동변화(behavior_goal = 부모가 배울 한 가지)·목표 포트폴리오(커리큘럼)·내부 소견을 정합니다. weekly_plans에 저장 = 작전(전략). 일간 두뇌·손이 이 닻을 존중합니다.
3
일간 두뇌 — 오늘의 각도를 고른다 V4-Pro · 자녀당 일 1회
pickActionByBrain. 13개 후보 시나리오 + 주간계획 + 최근 7통 편지 + 영양 평가 + 추천 후보를 받아 → 오늘 편지의 시나리오 · useFood(오늘 음식을 다룰지 = 영양거울 평가) · 추천 검수를 정합니다. = 전술(매일 다른 각도). 작문은 하지 않습니다. ↓ 이 프롬프트가 §2입니다.
4
손 — 따뜻한 편지로 작문 V4-Flash (intro일=V4-Pro)
buildLetterUsergenerateLetter. 두뇌 결정(시나리오·타깃·무브) + 모든 데이터 + 가드(P1~P10·안전·괴식)를 받아 따뜻한 편지를 씁니다. ↓ 이 프롬프트가 §3입니다.
원칙 한 줄 — 두뇌·코드가 '무엇을/왜', 손은 '어떻게 쓸지'만. 그래서 ④ 손은 타깃을 고르지 않고, ③ 두뇌는 추천을 후보 밖으로 추가하지 않고, ① 코드가 박제한 사실만 글에 나옵니다. 책임이 층마다 갈려 있어 한 층의 실수가 다른 층으로 번지지 않습니다.
2

🧠 일간 두뇌 프롬프트 — 라인바이라인

V4-Pro · pickActionByBrain

아래는 2026-06-15 아린에게 실제로 들어간 일간 두뇌 프롬프트 전문입니다. 두뇌는 글을 쓰지 않습니다 — 결정론이 깔아 둔 후보 안에서 '오늘 어떤 각도로 갈지'만 골라 JSON으로 답합니다. [SYSTEM]이 역할·원칙, [USER]가 그날의 데이터입니다.

🧠 BRAIN 일간 두뇌 프롬프트 V4-Pro · 프롬프트 원문(예시 06-15 아린)
[SYSTEM]
너는 영유아 편식 코칭의 *행동 선택 전략가*다. 편지를 쓰지 않는다 — 오늘 편지가 "어떤 각도(시나리오)로 가야 가장 도움이 될지"만 고른다(작문·영양평가·음식추천 본문은 다른 엔진이 한다). 원칙: ① 계산된 수치(결핍·환경·거부)는 사실 — 없는 문제를 지어내지 마라 ② 후보 시나리오 목록 안에서만 고른다. ③ ⭐**다양성이 최우선** — 최근 편지가 같은 시나리오를 2일 이상 반복했으면 반드시 다른 각도로 바꿔라. 한 신호(예: 환경)가 커도 매일 똑같은 시나리오로 고착되면 잔소리다. 환경·음식·자율성·식감·축하를 며칠에 걸쳐 번갈아 써라. ④ ⭐**음식 결핍을 영영 미루지 마라** — 집에 음식 결핍(콩류·과일·비타민A채소 등)이 있으면, 환경이 더 큰 문제라도 며칠에 한 번은 그 음식을 useFood=true로 다뤄라(v2가 콩류↔환경을 교대했던 것처럼). useFood=false는 "오늘은 환경 날"이라 잠시 미루는 것일 뿐, 결핍 자체가 0일 때만 계속 false. 진짜 결핍 없는데 음식 억지로 넣지도 마라(양방향 금지).

[USER]
아이: 아린

[영양 평가(참고)] 충족: 고기·계란·기타채소·비타민A채소·곡물 / 집 부족: 콩류·과일

[후보 시나리오 — 이 목록 안에서만 골라라. '발동가능'=수치상 조건 충족 · '최근사용'=최근 편지가 씀(피하라)]
- progress-celebrate (진전 축하, 우선순위 100) [비발동] — 시계열에 '거부→수용 전환'이 있다. 오늘은 그 전환된 식재료를 콕 집어 '받아들이기 시작한 순간'으로 축하만 하라. 그것이 
- neophobia-arfid-watch (신경성 회피 관찰, 우선순위 92) [비발동] — 식사 적신호(사레·헛구역질·먹는 종류 감소)가 누적됐다. 진단하지 말고, 비알람 톤으로 '대부분은 시간이 약이지만 이런 신호가
- low-data-gap (기록 공백, 우선순위 84) [비발동] — 최근 기록 공백이 있어 강한 진단을 보류해야 한다. 공백을 다그치지 말고, 있는 기록 안에서 작은 강점 1개만 비추고, 맨 끝
- mealtime-atmosphere (식사 분위기, 우선순위 72) [발동가능·최근사용] — 부모 메모 또는 식사환경 기록에 압박·전쟁·영상·돌아다니며·그레이징 신호가 있다. 분위기를 바꾸는 단일 레버 1개만 제안: 압
- reward-bribe-backfire (보상·협상 역효과, 우선순위 70) [비발동] — 부모 메모에 보상·디저트 협상 신호가 있다. 보상이 단기엔 먹여도 장기엔 그 음식 선호를 떨어뜨림을 부드럽게 알리고, 오늘 '
- autonomy-power-struggle (자율성 다툼, 우선순위 66) [비발동] — 광범위 거부 + 고집 신호이고 어린 연령대다. 거부가 맛이 아니라 '내가 정한다'는 발달 과업일 수 있음을 짚고, 결과는 같되
- texture-refusal (식감 거부, 우선순위 60) [비발동] — 식감 거부 신호(뱉음·헛구역질·물컹·오래 물기)가 있다. 싫은 게 '음식'이 아니라 '그 느낌(질감)'일 수 있음을 짚고, 이
- new-refusal (새 식재료 거부, 우선순위 58) [발동가능] — 최근 거부한 식재료가 있다. 거부를 '실패'가 아니라 '아직 처음 보는 것'으로 재정의해 먼저 안심시키고, 행동은 '며칠 간격
- re-exposure-timing (거부 재노출, 우선순위 54) [비발동] — 거부했던 식재료(특히 기관에서 거부한 것)가 있다. 한 번 거부로 빼버리면 친해질 기회가 사라짐을 짚고, 격일로 아주 작은 양
- home-daycare-gap (집-기관 격차, 우선순위 50) [발동가능] — 전체 영양은 괜찮은데 집 끼니에서 비는 식품군·결핍이 있다(기관 급식 덕). P10대로 '어린이집이 잘 챙겨준 덕'이라고 솔직
- nutrient-gap (영양 공백, 우선순위 48) [발동가능·최근사용] — 집 끼니에 부족한 식품군·결핍 영양소가 있다(우리 분석값만 사용). 부족한 한 가지를 짚고, 그것을 채울 행동 1개를 푸드 브
- repeat-menu (반복 메뉴, 우선순위 46) [비발동] — 집 끼니가 단조롭다(같은 메뉴 반복). 반복 자체를 탓하지 말고(익숙함=안전), 그 인기 메뉴를 '다리'로 써서 한 칸만 바꾸
- plateau (정체기, 우선순위 30) [발동가능] — 뚜렷한 새 신호가 없는 정체 구간이다. 오늘은 행동을 빼고, 잘하고 있는 것을 과거 편지와 다른 식재료·다른 측면으로 구체 칭

[음식 추천 후보 — 결정론(food-graph)이 계산. 두뇌가 '오늘 이 아이에게 맞는 것'만 검수·취사. ⚠️ 후보 밖 음식·조합 추가 금지(환각)]
(1) 빵 → 사촌 보리밥 / 궁합 달걀·우유
돼지고기 → 사촌 삶은 닭고기(또래 인기: 닭개장·치킨마요덮밥) / 궁합 보리밥·감자
소고기 → 사촌 익힌 오리고기(또래 인기: 훈제오리구이·오리주물럭) / 궁합 밥·현미밥
계란 → 사촌 삶은 달걀(또래 인기: 달걀팟국·달걀장조림) / 궁합 다시마·부추

[최근 3주 주간계획 — 큰 방향. 같은 진짜 문제면 시나리오 유지 OK, 단 각도/무브는 매일 다르게]
[이번 주 2026-W25] 타깃 콩류 · 목표 "저녁 한 끼, 밥상에 앉기 전에 TV·태블릿을 끄고 식사를 시작해보기" / 소견 영양 결핍이나 거부 음식은 없고 스스로 잘 떠먹는 아이지만, 화면·이동 식사가 91%에 달해 식사 집중 자체가 무너진 상태다. 거부나 질감 문제보다 환경 구조가 훨씬 더 큰 병목이므로 이번 주 레버는 food가 아닌 environment로 잡는다. 콩류·과일은 집에서 부족하지만 거부는 
[1주 전 2026-W24] 타깃 콩류 · 목표 "저녁 식사 한 끼, 식탁에서 화면 없이 아린이와 함께 앉아 식사 시작해 보기" / 소견 영양 결핍·거부 음식 없이 잘 먹는 편이나, 화면 보며·이동하며 먹는 비율이 100%로 식사 자체에 주의가 분산되어 있다. 이 상태가 지속되면 배고픔 신호 인식과 새 음식에 대한 탐색 기회 모두 줄어들 수 있어, 이번 주는 식품 확장보다 식탁 집중 환경 만들기를 1순위 레버로 잡는다. 
[2주 전 2026-W23] 타깃 - · 목표 "저녁 한 끼, 밥상에 앉기 전에 TV·태블릿을 끄고 가족이 같은 자리에서 함께 시작해 보기" / 소견 영양 결핍·거부 음식이 전혀 없고 스스로 떠먹는 비율도 94%로 매우 안정적이다. 지금 아린이의 유일한 신호는 화면·이동 식사 69%라는 환경 문제 하나뿐이며, 이것이 식사 집중·포만 감지·식탁 루틴 형성을 가로막는 가장 큰 레버다. 식품 목표나 채근이 끼어들 여지가 없으므로 이번 주는

[최근 보낸 편지 — 각도·무브가 겹치면 안 됨]
[직전] 집 끼니에서 주황색·초록색 채소를 거의 만나지 못하고 있어요. 어린이집에서 잘 챙겨주고 있지만, 집에서도 가끔 색깔 있는 채소를 만나면 아린이의 입맛이 더 넓어질 거예요. 내일 저녁, 아린이가 좋아하는 밥을 담을 때 익힌 당근을 아주 잘게 다져 한두 숟갈 섞어보세요. 또래 아이들은 이렇게 밥 속에서 당근의 자연스러운 맛을 느끼다가, 나중에 주먹밥처럼 더 다양한 모습으로도 만나곤 합니다.

[2일 전] 어제 저녁, 화면을 끄고 식탁에 앉아서 아린이와 함께 밥을 먹으셨네요. 그 모습이 정말 좋아요. 아이의 뇌가 음식에 집중하면서 배고픔 신호를 제대로 받을 수 있는 환경이 만들어지는 거거든요. 오늘 저녁도 같은 방식으로, 아린이 손이 밥그릇을 놓고 20분쯤 지나면 '많이 먹었네, 여기까지 할까' 한마디와 함께 편하게 상을 정리해 주세요. 남은 것이 있어도 전혀 괜찮습니다. 짧고 즐거운 마무리가 다음 식사를 기다리는 설렘으로 이어집니다. 한편 집 아침·저녁에 콩 요리가 거의 없더라고요. 환경이 자리 잡으면 두부를 순두부찌개 같은 따뜻한 국으로 곁들여보면 아린이도 자연스럽게 받아들일 수 있어요.

[3일 전] 요즘 밥을 거부하다가도 한참 뒤에 다시 받아들이곤 하죠. 아린이도 그렇게 하고 있어요. 기록을 들여다보니 최근 끼니들이 화면을 보며 진행되는 경우가 많아서, 그 부분에서 아이의 집중력이 흐트러지고 있다는 생각이 들어요. 오늘 저녁, 아이 손이 밥그릇을 놓고 20분쯤 지나면 '많이 먹었네, 여기까지 할까' 한마디와 함께 식탁을 가볍게 정리해 주세요. 남은 음식이 있어도 괜찮습니다. 짧고 편안한 끝맺음이 다음 끼니를 기다리는 즐거움으로 이어진답니다.

[4일 전] 어제 아침, 화면을 끄고 식탁에 앉아서 먹는 모습. 그런 작은 변화가 아린이의 밥상을 정말 다르게 만들어요. 식탁이 조용하고 함께할 때 아이의 뇌가 '아, 지금은 먹는 시간이구나' 하고 신호를 받거든요. 오늘도 하루 중 한 끼만. 아침이든 저녁이든 편하신 시간에. 같은 방식으로 앉혀주세요. 그 한 끼가 쌓이면, 나머지 끼니들도 자연스럽게 따라가곤 합니다.

[5일 전] 어린이집이 배추김치, 모닝빵, 두유처럼 여러 음식을 꾸준히 챙겨줘서 아린이의 영양이 전체적으로 든든한 편이에요. 다만 집 아침·저녁을 들여다보니 주황색이나 초록색 채소를 거의 만날 기회가 없더라고요. 다행히 아린이가 이미 밥, 감자볶음, 미역국처럼 여러 음식을 자연스럽게 받아들이고 있으니, 찐 고구마도 그런 친숙한 음식들 옆에서 천천히 익숙해질 수 있어요. 내일 저녁, 아린이가 좋아하는 밥과 감자볶음을 한 접시에 담으면서 찐 고구마를 살짝 곁들여 보세요. 또래 아이들은 이렇게 시작해 나중에 고구마맛탕이나 으깬 고구마처럼 더 다양한 형태로 만나곤 합니다.

오늘 편지의 '행동 선택 + 추천 검수'만 JSON으로(작문 금지):
{
  "scenarioId": "위 목록의 id 하나",
  "planTarget": "선택적 — 집중할 식품군/거부음식(없으면 null→코드 결정)",
  "moveKey": "선택적 — 무브 힌트(없으면 null→코드 회전)",
  "useFood": "오늘 음식 추천을 쓸지 boolean — 집에 음식 결핍(콩류·과일·채소)이 있고 최근 며칠 음식 얘기를 안 했으면 true(그 음식 추천). 결핍 자체가 0일 때만 false. 환경이 크다고 매일 false로 빼지 마라(며칠에 한 번은 음식 날)",
  "approvedRecs": ["위 후보 중 오늘 맞는 것만 그대로 골라 배열(부분집합·후보 밖 금지). useFood=true면 최소 1개"],
  "why": "시나리오 선택 + 추천 취사 근거 1~2문장(수치·3주 흐름·최근 편지와 다른 각도임을 인용)"
}

★ 각 블록이 무슨 일을 하는지 ↓

[SYSTEM] 전략가 역할 + 4원칙
두뇌의 헌법. ①수치는 사실·환각 금지(없는 문제를 지어내지 않는다) · ②후보 시나리오 안에서만 고른다 · ③다양성 최우선(같은 각도 2일+ 반복 금지) · ④음식 결핍을 영영 미루지 말기(환경이 커도 며칠에 한 번은 음식 날). 작문·영양평가·추천 본문은 "다른 엔진이 한다"고 못 박습니다.
[영양 평가(참고)] 결정론 영양거울 요약
코드(①결정론)가 계산한 영양거울의 한 줄 요약 — 전체 충족 식품군과 집 부족 식품군. 두뇌가 useFood·각도를 정할 때 참고하는 사실 입력입니다(여기선 집 부족 = 콩류·과일).
[후보 시나리오] 13개 · 발동/최근사용 표시
결정론이 13개 시나리오마다 수치를 대입해 라벨을 붙입니다. 발동가능 = 트리거 충족(고를 수 있음) · 최근사용 = 최근 편지가 이미 쓴 것(피하라). 두뇌는 이 목록 안에서만 고릅니다 — 시나리오 자체를 지어낼 수 없어 환각이 차단됩니다.
[음식 추천 후보] food-graph 계산값
결정론(food-graph)이 사촌·궁합·또래 인기 음식까지 계산해 둔 추천 풀. 두뇌는 검수만 합니다 — "오늘 이 아이에게 맞는 것"을 고를 뿐, 후보 밖 음식·조합을 추가하면 안 됩니다(환각).
[최근 3주 주간계획] 주간 두뇌의 전략
②주간 두뇌가 정해 둔 큰 방향(레버·타깃·소견)을 3주치 보여줍니다. 일간 두뇌는 이 닻을 존중하되, 같은 진짜 문제라도 각도·무브는 매일 다르게 가져갑니다.
[최근 보낸 편지] 최근 7통(여기선 5통)
최근에 실제로 보낸 편지 본문. 두뇌가 겹침을 피하려고 읽습니다 — 같은 시나리오·무브가 며칠째 이어졌으면 오늘은 다른 각도로 틀게 만드는 입력.
JSON 출력 두뇌의 결정문
scenarioId · planTarget · moveKey · useFood · approvedRecs · why. 이 6개 필드가 ④ 손으로 전달됩니다. 작문은 일절 없습니다.
핵심 — why는 진짜 추론입니다. 두뇌는 결정만 던지지 않고 근거를 적습니다. 예: "최근 4일 연속 환경 각도였고 콩류 결핍을 계속 미뤘으니 오늘은 음식 날" 같은 식으로 — 수치·3주 흐름·최근 편지와 다른 각도임을 인용해, 왜 오늘 이 시나리오를 골랐는지를 스스로 설명합니다. 이 한 줄이 매일 편지가 잔소리로 굳지 않게 막는 회전축입니다.
3

✍️ 손 프롬프트 — 라인바이라인

V4-Flash · generateLetter

손 프롬프트의 [SYSTEM]P1~P10이 박힌 긴 코치 표준 프롬프트입니다(편식 방법론 9원칙 + 안전 규칙) — 매일 동일하게 고정돼 있어, 여기서는 매일 바뀌는 [USER] 블록을 그대로 펼칩니다. 이 한 덩어리에 두뇌의 결정·코드의 사실·모든 가드가 주입되고, 손은 이걸 받아 JSON 한 통(letter + oneliner)으로 작문합니다.

✍️ HAND 손 프롬프트 — [USER] 블록 (SYSTEM = P1~P10 표준 코치 프롬프트, 고정) V4-Flash · 프롬프트 원문(예시 06-15 아린)
[USER]

[최근 보낸 코칭 편지 — 최근 것부터. ⚠️ 이것들과 절대 겹치지 마라. 날짜·경과일 계산 금지]
[바로 직전 편지]
어제 저녁, 화면을 끄고 식탁에 앉아서 아린이와 함께 밥을 먹으셨네요. 그 모습이 정말 좋아요. 아이의 뇌가 음식에 집중하면서 배고픔 신호를 제대로 받을 수 있는 환경이 만들어지는 거거든요. 오늘 저녁도 같은 방식으로, 아린이 손이 밥그릇을 놓고 20분쯤 지나면 '많이 먹었네, 여기까지 할까' 한마디와 함께 편하게 상을 정리해 주세요. 남은 것이 있어도 전혀 괜찮습니다. 짧고 즐거운 마무리가 다음 식사를 기다리는 설렘으로 이어집니다. 한편 집 아침·저녁에 콩 요리가 거의 없더라고요. 환경이 자리 잡으면 두부를 순두부찌개 같은 따뜻한 국으로 곁들여보면 아린이도 자연스럽게 받아들일 수 있어요.

[2번째 전 편지]
요즘 밥을 거부하다가도 한참 뒤에 다시 받아들이곤 하죠. 아린이도 그렇게 하고 있어요. 기록을 들여다보니 최근 끼니들이 화면을 보며 진행되는 경우가 많아서, 그 부분에서 아이의 집중력이 흐트러지고 있다는 생각이 들어요. 오늘 저녁, 아이 손이 밥그릇을 놓고 20분쯤 지나면 '많이 먹었네, 여기까지 할까' 한마디와 함께 식탁을 가볍게 정리해 주세요. 남은 음식이 있어도 괜찮습니다. 짧고 편안한 끝맺음이 다음 끼니를 기다리는 즐거움으로 이어진답니다.

[3번째 전 편지]
어제 아침, 화면을 끄고 식탁에 앉아서 먹는 모습. 그런 작은 변화가 아린이의 밥상을 정말 다르게 만들어요. 식탁이 조용하고 함께할 때 아이의 뇌가 '아, 지금은 먹는 시간이구나' 하고 신호를 받거든요. 오늘도 하루 중 한 끼만. 아침이든 저녁이든 편하신 시간에. 같은 방식으로 앉혀주세요. 그 한 끼가 쌓이면, 나머지 끼니들도 자연스럽게 따라가곤 합니다.

[4번째 전 편지]
어린이집이 배추김치, 모닝빵, 두유처럼 여러 음식을 꾸준히 챙겨줘서 아린이의 영양이 전체적으로 든든한 편이에요. 다만 집 아침·저녁을 들여다보니 주황색이나 초록색 채소를 거의 만날 기회가 없더라고요. 다행히 아린이가 이미 밥, 감자볶음, 미역국처럼 여러 음식을 자연스럽게 받아들이고 있으니, 찐 고구마도 그런 친숙한 음식들 옆에서 천천히 익숙해질 수 있어요. 내일 저녁, 아린이가 좋아하는 밥과 감자볶음을 한 접시에 담으면서 찐 고구마를 살짝 곁들여 보세요. 또래 아이들은 이렇게 시작해 나중에 고구마맛탕이나 으깬 고구마처럼 더 다양한 형태로 만나곤 합니다.

[5번째 전 편지]
집 아침·저녁 끼니를 들여다보니 비타민A가 풍부한 주황색·초록색 채소를 거의 만날 기회가 없네요. 다행히 아린이는 밥, 미역국, 감자볶음처럼 여러 음식을 거부 없이 받아들이고 있으니, 찐 단호박도 그런 친숙한 음식들 속에서 천천히 익숙해질 수 있어요. 내일 저녁, 아린이가 좋아하는 밥을 담을 때 찐 단호박을 아주 잘게 다져 한두 숟갈 섞어보세요. 또래 아이들은 이렇게 밥 속에서 단호박의 자연스러운 단맛을 처음 느끼다가, 나중에 단호박찜이나 카레처럼 더 다양한 요리로 만나곤 합니다. 한편 최근 간식에 과자 대신 삶은 계란, 고구마, 방울토마토(반으로 잘라) 같은 것들을 곁에 두면, 끼니 시간에 더 잘 집중할 수 있어요.

⚠️ 위 최근 편지들(특히 최근 3일)과 **내용도 표현도 겹치면 안 된다.** 구체적으로:
· 첫 문장(도입)을 과거와 같은 구조·같은 말로 시작하지 마라 — 매일 다르게 열어라(어떤 날은 구체적 관찰, 어떤 날은 작은 변화 포착, 어떤 날은 따뜻한 한마디). 같은 일화·사실(예: '어제 배 아픈데도 먹고 싶어 함')을 이틀 연속 도입 소재로 쓰지 마라.
· 과거 편지에 이미 쓴 상투 문구를 그대로 재사용 금지 — 예: "정성스러운 기록 덕분입니다", "N가지 식재료를 만나며 든든한 식경험을 쌓고 있네요", "부모님이 먼저 맛있게 드시는 모습만 보여주면 충분합니다", "한 번의 노출로 충분합니다" 류를 매번 반복하지 마라.
· 같은 행동 제안·같은 식재료·같은 칭찬을 반복하지 마라.
· 정말 같은 핵심을 또 말해야만 하면 → 같은 단어·문장 틀을 피해 **완전히 다른 표현과 문장 구조로 패러프레이즈**하고, 가능하면 다른 식재료·다른 각도로 바꿔라(예: '부모가 먼저 먹는 모습' 대신 '아이가 보는 앞에서 자연스럽게 한 입', '함께 식탁에 같은 음식을 두기' 등으로).
· 같은 결핍이 며칠째 이어져도 편지는 달라야 한다 — (가) **타깃 식재료/식품군 로테이션**: 매일 같은 것(예: '콩·생선')만 반복하지 말고, 부족 목록(결핍 영양소·부족 식품군) 중 최근에 안 짚은 다른 것을 오늘의 타깃으로 고르거나, 같은 군이라도 다른 식재료로 바꿔라. (나) **코칭 무브 로테이션**: 매일 같은 방법('어른 반찬에 곁들여 노출')을 반복하지 말고 [좋아하는 음식에 잘게 섞기 · 닮은 사촌/궁합 짝꿍 곁들임 · 조리법 바꿔 다시 권하기 · 아이와 함께 만들어보기 · 식탁에 같이 두고 부모가 자연스레 먹기] 중 최근 편지와 다른 방법을 골라라. (다) **위안 문구 절제**: '어린이집이 영양을 채우니 집은 부담 내려놓기', '안 먹어도 노출만으로 충분' 같은 안심 문구를 최근 편지에 이미 썼으면 오늘은 빼라(매일 반복하면 공허해진다). (라) **진척 숫자 칭찬 금지**: '잘 먹는 식재료 N가지'·'56가지에서 63가지로' 같은 가짓수 칭찬을 쓰지 마라 — 매번 같은 칭찬이 된다. 대신 구체적인 음식·행동·작은 변화를 칭찬하라. (마) **대조 의무**: 위 '지난 편지'에 이미 등장한 식재료(예: 완두)·주입 통로(예: 미역국에 섞기)·코칭 무브를 실제로 훑어, 오늘은 그것들과 겹치지 않는 다른 식재료·다른 통로·다른 무브를 써라.
결론: 매일 새로운 관점·새 표현. 동어반복은 잔소리이며 금지.
[이번 주 상황 — 아래 사실만 사용. 영양/과거/숫자를 추가로 지어내지 말 것]
아이: 아린 (만 5세)
먹어본 식재료: 62가지
부족 영양소(우리 분석값): 특이사항 없음
충족 식품군: 유제품, 고기·계란, 곡물, 기타채소, 비타민A채소, 생선·해산물, 콩류, 과일
부족 식품군: 없음
잘 먹는(좋아하는) 음식 [집 끼니 기준·괄호=집에서 먹은 횟수]: 밥(5회), 치즈스틱(1회), 꽃등심(1회), 떡(1회), 빵(1회), 치킨(1회), 조기(1회), 김(1회)
  ⚠️ 이 목록은 '집에서 부모가 먹인' 음식이다. 여기 없는 음식(특히 어린이집·유치원 급식 메뉴)을 '아린이가/아이가 잘 먹는다'고 칭찬·인용하지 마라(부모가 준 적 없다). 횟수가 적은(1~2회) 음식을 '늘 잘 먹는 주식'처럼 과장하지 말고, 매 편지 같은 음식만 반복 인용하지 마라 — 횟수 높은 것 위주로 하되 날마다 다른 예를 골라라. 목록에 없는 음식을 잘 먹는다고 지어내지 마라.
검증된 추천(테이블 근거 — '[오늘 타깃] 식재료→인기 음식' + 잘 먹는 식재료→사촌·궁합. 음식·사촌·궁합은 이 목록 안에서만 골라라. ⚠️ 추천 식재료는 '오늘 부족 식품군(타깃)'에 속한다 — "○○ 채소가 부족하다"면서 달걀·고기처럼 다른 식품군을 권하지 마라: 부족 프레이밍과 추천 식재료의 식품군을 반드시 일치시켜라):
[오늘 타깃 비타민A채소] 익힌 당근 (또래 인기 음식: (간식)꼬마김밥·깻잎지 · 잘 먹는 닭고기 곁들이면 좋아요)
소고기 → 사촌 익힌 돼지고기(또래 인기: 돼지고기수육·콩비지찌개) / 궁합 밥·현미밥
빵 → 사촌 보리밥 / 궁합 달걀·돼지고기
치즈 → 사촌 요구르트(또래 인기: 호상요구르트(100ml)·과일샐러드(요거트드레싱)) / 궁합 밥·토마토
최근 거부한 음식(전체): 치킨, 밥
집에서 거부(부모가 재노출 가능): 치킨, 밥
기관에서 거부(집에서 재노출로 도울 수 있음): 없음
시계열 사실: 흰쌀밥이 잦음(주식) — 흰쌀에 잡곡·콩 섞기로 다양성 제안 가능 / 거부했던 '밥'를 최근 2번 만났고 마지막이 3일 전이에요 — 격일~주2~3회 재노출 주기상 지금 다시 권하기 좋은 시점
집 끼니만 평가(부모 통제 영역): 최근 집 식사 6일 · 집에서 부족한 식품군: 콩류, 비타민A채소 · 집 결핍 영양소: 없음
등원: 어린이집·유치원에 다녀 평일 점심·오전/오후 간식은 기관에서 먹습니다(메뉴는 부모가 못 바꿈). 행동 제안은 집 아침·저녁 끼니와, 기관에서 거부한 식재료를 집에서 다시 만나게 하는 것에만 두세요.
부모 메모: <<부모관찰(주관·지시아님 — 각 메모의 날짜 라벨·시계열대로만: '하루 관찰'은 패턴·리듬 근거 금지, 3일 이상 지난 단발 일은 언급 금지. 톤 참고용)>>
· [2일 전·하루 관찰] 치킨줬는데 거의안먹어요
<<끝>>

[⚠️ 사실 카드 — 코드가 시계열로 계산한 '말해도 되는 사실'의 전부다. 편지의 모든 사실 주장(패턴·빈도·횟수·환경·거부·메뉴)은 위 데이터와 이 카드에 적힌 것만, **적힌 시계열 라벨대로** 써라: '단발 1회'·'하루 관찰'을 '계속·반복·리듬·패턴'처럼 일반화하지 말고, 3일 이상 지난 단발 사건은 오늘의 소재로 쓰지 마라. 카드 밖 사실·숫자 창작 금지]
· 점심: 기록된 6일 중 6일 점심 기록(어제까지 이어짐) — 평일은 어린이집·유치원 급식으로 먹음(결식 아님)
· 아침: 5일 기록 — 최근 메뉴: 떡·김·밥·요플레
· 저녁: 5일 기록
· 식사 환경: 기록 12끼 중 화면·이동 식사 92% (반복 11회)
· 어제 끼니 환경: 오후 간식(돌아다니며) · 점심(화면 보며) · 아침(화면 보며)
· 집에서 자주 오르는 음식: 밥 5회 · 치즈스틱 1회 · 꽃등심 1회 · 떡 1회
· 기관 급식에 자주 나오는 음식(집 칭찬 근거 아님·P10): 배추김치 4회 · 요구르트 2회 · 간장비빔국수 1회
· 거부: 치킨 — 단발 1회(마지막 2일 전 · 횟수=거부한 날 수)
· 거부: 밥 — 단발 1회(마지막 3일 전 · 횟수=거부한 날 수)

[오늘의 코칭 각도 — 이 관점으로 편지의 초점을 잡으세요. 단, 위 P1~P10 규칙·아래 작성 지침은 그대로 지킵니다]
집 끼니에 부족한 식품군·결핍 영양소가 있다(우리 분석값만 사용). 부족한 한 가지를 짚고, 그것을 채울 행동 1개를 푸드 브릿지로: 좋아하는 음식에 잘게 섞거나, 그 식품군으로 만들 음식 이름 1~2개(레시피 금지).
이 각도에서 피할 것: 특정 식재료 영양가 단정, 없는 결핍 지어내기, '흰쌀밥을 줄이라'.

[⚠️ 오늘의 타깃 — 코드가 확정함, 당신은 고르지 마라] 오늘 편지가 다룰 부족 항목은 오직 '비타민A채소' 하나다. 다른 부족 식품군·영양소는 오늘 건드리지 말고 이 하나에만 행동(ⓒ)을 두어라. (타깃은 매일 코드가 돌아가며 바꾼다 — 당신의 역할은 '무엇을 다룰지' 고르는 게 아니라 '주어진 타깃을 따뜻하게 풀어 쓰는 것'이다.)

[⚠️ 도입 규칙 — 반드시] 이 편지는 이렇게 열어라: 집에서 부족한 그 식품군 한 가지를 짚으며 열어라.
❌ 부모 메모 속 특정 일화(예: '배 아픈데도 먹고 싶어 함')로 절대 시작하지 마라 — 매일 같은 편지를 만드는 금지 패턴이다. 첫 어절을 아이 이름('아린이가/는')으로 매번 시작하지 말고 상황·식재료·질문 등으로 다양하게 열어라.

[⚠️ 오늘의 행동 — 이 유형으로만 구성] 부족 영양소를 좋아하는 음식에 '아주 잘게 섞기'(이 시나리오가 섞기 담당).
단, 위 '오늘의 코칭 각도'가 '행동 빼고 칭찬만'이면 행동을 생략한다.

[이번 주 코칭 방향 — 톤·초점. 행동(ⓒ)은 하나만, 둘째 행동을 만들지 마라] 이번 주의 작은 변화: '저녁 식사 한 끼, 식탁에서 화면 없이 아린이와 함께 앉아 식사 시작해 보기' (저녁 6시, 밥상 차리기 전 TV·태블릿 전원을 먼저 끄고 같은 구체적 순간에). 오늘은 '어떻게'를 딱 한 장면으로 구체화하라(행동 직전·직후의 모습, 말 걸지 않고 기다리는 장면 등). 둘째 행동을 얹지 마라. ⚠️ 이번 주 패턴 진단(식사 리듬·환경 통계 등)은 이번 주 첫 편지에서 이미 전했다 — 오늘은 그 진단을 다시 서술하지 마라(같은 진단+같은 처방의 반복은 잔소리다). 필요하면 "이번 주는 ○○에 마음 쓰고 계시죠" 같은 한 구절 리마인드만. 도입도 어제와 다른 소재(구체 장면·잘 먹은 음식)로 열어라.
❌ '미션·과제·목표·이번 주 챌린지' 단어 금지. '왜 안 하셨어요' 류 금지.

[간식 평가 — 별도 '간식 엔진'이 끼니와 분리해 분석한 결과. ⚠️ 체중·살·다이어트·BMI 단어 금지(유아 체중은 민감). 간식은 '음식 끼니'와 별개로 다루고, 초가공(과자·사탕·단 음료)은 '좋은 간식(과일·플레인 유제품·삶은 계란·고구마 등)'으로 바꾸는 부드러운 제안으로만. 다그치지 말 것. 식사를 방해하는 간식 타이밍이면 '끼니 1~2시간 전은 비워두기' 정도로만. ⚠️ 추천 간식에 (반으로 잘라)·(익혀)·(잘게) 같은 조리 표시가 있으면 반드시 그대로 살려라 — 어린 아이는 방울토마토·포도·생당근처럼 작고 단단한 음식은 잘라/익혀 줘야 질식 위험이 없다(임의로 통째 표현으로 바꾸지 말 것).]
간식 평가(별도 간식 엔진): 최근 6일 간식에 과자·단 간식류 2회(예: 어묵·옥수수시리얼·시리얼) 있었어요. 바꿔줄 좋은 간식(끼니와 별개): 치즈·삶은 계란·고구마·방울토마토(반으로 잘라).

[오늘의 코칭 무브 — 행동(ⓒ)을 제안할 땐 이 방식 계열로 구성하라. 최근 편지와 다른 무브를 강제하는 결정론적 로테이션이다(매일 같은 '곁들이기'만 반복되는 것을 막기 위함). 단, 위 '오늘의 코칭 각도'가 '행동 빼고 칭찬만'이면 무브는 생략. 이 방식이 오늘 타깃 식재료에 영 안 맞으면 최근 편지와 겹치지 않는 다른 방식으로]: 좋아하는 음식에 도전 식재료를 잘게 섞어 주기

[⚠️ 안전·정직 가드]
· 입력(시계열·거부·메모)에 없는 증상(사레·헛구역질·뱉음·구토)을 사실로 단정하지 마라 — 없으면 '혹시 ~라면' 가정형으로만.
· 데이터에 없는 시점·기간('지난달·지난주·N개월 전·N일간')을 쓰지 마라 — 시계열에 명시된 'N일 전'만 인용.
· 단 하루의 기록·메모(예: 주말 외식·뷔페 한 번)를 '계속 반복되는 리듬/패턴'으로 일반화하지 마라 — '반복·계속·~하는 리듬' 같은 패턴 주장은 시계열 사실에 명시돼 있을 때만.
· 등원 아동의 평일 점심·오전/오후 간식은 기관에서 먹는다 — 시계열에 점심 기록 사실이 있으면 '점심을 거른다/건너뛴다'고 절대 단정하지 마라(주말 하루 메모로 일반화 금지).
· 김치류(김치·깍두기·배추김치)에 다른 재료를 섞으라고 하지 마라(괴식). 아이에게 주체높임 '-시-' 금지('좋아하시는' X).
· 집에서 부족한 식품군이 있으면 '식단이 충분/다 채워졌다'고 말하지 마라('충분'은 '서두르지 않아도 됨'·'시작은 소량으로'에만). 김치류(깍두기·배추김치)를 칭찬 예시로 들지 마라(반복 식품·짠맛). 짠맛·짭짤함을 '입맛 발달'로 긍정하지 마라(영유아 저염).
· 특정 생선(가자미 등)을 '강점/충족'으로 단정하지 마라 — 집에서 부족한 식품군이면 '어린이집에서 잘 먹는다'처럼 출처를 밝히고 집 끼니의 부족함을 흐리지 마라.
· ⛔ 단 과일(바나나·포도·사과)·우유에 콩·두부·생선·멸치를 섞거나 뿌리지 마라(괴식). 콩류 보강은 두부볶음밥·콩밥·된장국 같은 짭짤한 한식 베이스로만. 국·탕·찌개는 '마시다'가 아니라 '먹다'로 쓴다(국물만 마신다).
· ⛔ 밀(가루)·쌀(멥쌀·찹쌀·현미·보리)은 날것으로 다른 식재료와 섞거나 곁들여 먹는 게 아니다 — 반드시 '먹는 형태'로만 권하라: 밀→빵·면·떡, 쌀→밥·떡. '밀가루를 ○○와 함께/섞어'·'쌀(멥쌀)을 곁들여' 같은 표현 절대 금지(밥·빵·면·떡으로 해석해 추천).

작성 지침:
- letter: 3~5문장(영양거울+음식 추천이나 간식 평가를 녹일 땐 최대 6문장). 담을 요소: ⓐ 따뜻한 인정/공감 · ⓑ 위 데이터에서 읽은 사실 1개(우리 분석값·시계열만) · ⓒ 오늘의 행동 1개. **순서는 매일 달라도 좋다 — 도입을 고정하지 마라.** 특히 '거부는 정상' 안심 문구로 매번 시작하지 말고, 새로 거부한 게 있을 때만 자연스럽게 한 번 녹여라(없으면 다른 방식으로 열어라). 행동은 '집 아침·저녁 끼니' 또는 '기관에서 거부한 식재료를 집에서 부담 없이 다시 만나기'에서만. 어린이집·유치원 급식 메뉴 변경 요청 금지. 점수·등급 금지.
- ⭐ 영양거울 + 음식 추천(항상 포함 — 오늘 코칭이 환경·자율성·식감이어도 빼지 마라·이사님 2026-06-15): (1) **영양거울 한 구절** — 음식 다양성(8 식품군)은 '집+기관 전체' 기준으로 본다(기관 급식도 합산해 평가). · '부족 식품군'(전체)에 항목이 있으면 = 전체 식단에서도 부족한 것이니 "전체적으로 ○○가 좀 부족해서, 집에서 조금씩 채워주면 좋아요". · 전체 부족은 없고 '집에서 부족한 식품군'만 있으면(기관이 채워줌) "어린이집 덕에 전체 영양은 잘 채워지고 있어요. 집 끼니엔 ○○가 좀 드무니 가끔 집에서도 만나면 다양성에 좋아요"처럼 — '부족·결핍'으로 단정하지 말고 부드럽게. · 둘 다 없으면 잘 채워지고 있음을 짧게. (2) **음식 추천 1개** — 위 '검증된 추천' 목록의 음식 이름 1개를 부드럽게 제안(목록 밖 지어내기 금지). ⚠️ '오늘 꼭 해달라는 행동'은 1개(핵심 레버)뿐 — 영양거울·음식은 강요 아니라 정보·부드러운 미래 제안(두 번째 숙제 금지). 환경 편지면 "환경이 자리잡으면 ~". ⚠️ 단 식재료 선호(잘 먹는/안 먹는)·식사환경·섭취방식 평가는 '집 끼니'만(기관 급식은 부모가 못 바꾸는 불가항력이라 평가·지적 금지) — '영양 다양성'만 전체로 본다.
- ⚠️ **매일 새로움(중복 금지)**: ⓒ 행동이 최근 편지들과 같은 개선점(예: 또 콩류)이라면 같은 말을 반복하지 말고 — (a) 같은 개선점이라도 **다른 식재료·다른 방법**으로 바꾸거나, (b) 정말 고칠 게 그것 하나뿐이면 오늘은 행동을 빼고 **잘하고 있는 것을 과거와 다른 식재료·다른 측면으로 구체적으로 칭찬만** 하라. ⓐ 칭찬도 과거 편지와 겹치지 않게(같은 'N가지 식재료' 같은 문구 반복 금지).
- 행동이 거부·도전 식재료를 다시 만나게 하는 것이면 푸드체이닝으로 구체화하라: 위 '좋아하는 음식' 중 하나를 골라 ① 거기에 그 식재료를 잘게·소량 섞어 식감·향을 가려 권하거나, ② 그 식재료로 만들 만한 음식은 **위 '검증된 추천'에 적힌 인기 음식에서만** 골라 1~2개 '이름만' 제안한다(목록 밖 음식명 지어내기 금지). 레시피·조리법 상세(양념·불세기)는 쓰지 마라(부모가 직접 검색). 좋아하는 음식이 '아직 파악 중'이면 무리해서 특정 음식명을 지어내지 말고 일반적인 친숙한 음식으로 부드럽게.
- ⚠️ 음식·사촌·궁합 추천은 **위 '검증된 추천' 목록에 적힌 것만** 써라. (a) '[오늘 타깃]' 줄이 있으면 **그 줄의 인기 음식 이름을 본문에 반드시 한 번 넣어라** — 잘게 섞어 시작하더라도 "또래들은 OO(예: 순두부찌개)로도 자주 먹어요"처럼 그 음식을 확장 선택지로 함께 제시(섞기 하나로만 끝내지 말 것). (b) 사촌·궁합도 목록에 있는 것만(예: "고구마 잘 먹으니 닮은 단호박을, 또래 인기 단호박찜으로"). **목록 밖 음식·사촌·궁합·조합을 지어내지 마라** — 틀린 궁합('김치에 생선')·괴식 조합은 신뢰를 깬다. 목록이 '파악 중'이면 같은 식품군의 친숙한 음식으로만 부드럽게. (c) ⭐ 추천 식재료에 **조리법 접두(찐·데친·삶은·구운·익힌·볶은)가 붙어 있으면 반드시 그대로 살려라** — 생채소·생선·말린 콩·계란은 익혀서 줘야 하니 '단호박'이 아니라 '찐 단호박', '시금치'가 아니라 '데친 시금치'처럼 조리법+식재료로 쓴다(부모가 생물로 오인하지 않게).
- 등원 아동: 칭찬·평가는 '집 끼니만 평가'(부모 통제 영역) 기준으로 하라. 전체 영양이 괜찮아도 그게 기관 급식 덕이면 "어린이집에서 잘 챙겨주고 있어요"라고 솔직히 밝히고, '집에서 부족한 식품군/결핍'에 한 걸음을 둬라. "전반적으로 잘하고 계세요"처럼 기관 덕을 부모 공으로 돌리는 뭉뚱그린 칭찬은 금지.
- P9: '기록 현황'에 공백이 있을 때만, 편지 맨 끝에 부담 없는 한 줄로 한 번만 권유(예: "기억나는 대로 비어 있는 날 식단만 살짝 채워두시면 더 정확히 봐드릴게요"). 공백이 없으면 기록 얘기는 꺼내지 마라. 절대 다그치지 마라.
- 미입력 정보 권유: 아래 '미입력 권유'가 있을 때만, 편지 맨 끝에 부담 없는 한 줄로 한 번만 그 내용을 자연스럽게 녹여라(기대효과 1개 포함, 그 문구 톤 유지). 없으면 절대 꺼내지 마라. P9 기록 권유와 동시에 쓰지 말고(둘 중 하나만), 강요·죄책감 유발 금지.
- 개선 팁: 위 '개선 팁'이 있을 때만, 편지 맨 끝 한 줄로 그 취지를 부드럽게 녹여라(식감·자율성·환경·식사시간 중 하나, 그 문장 톤 유지). 없으면 꺼내지 마라. P9·미입력 권유와 동시에 쓰지 말고(끝줄 권유는 하루 하나만), 강요·죄책감 금지.
- 간식: 위 '간식 평가'가 제공되면 편지에 자연스럽게 한 부분으로 녹여라(별도 단락·체중/살/다이어트 단어 금지). 끼니 영양 결핍과 간식 둘 다 신경 쓸 게 있으면 오늘은 더 시급한 하나에 집중하되, 초가공 간식이 잦거나 식사를 방해하면 그걸 우선으로. 좋은 간식 추천은 '음식(끼니) 추천'과 섞지 말고 간식으로만 제안하라.
- oneliner: 최근 식단 진단 한 줄. 잘하는 점 + 신경 쓸 점 1개 + 방법론 근거 한 조각, 격려 톤.

반드시 JSON만: {"letter": "...", "oneliner": "..."}

★ 각 블록이 무슨 일을 하는지 ↓

[최근 보낸 코칭 편지] + 다양성 규칙
최근 5통 + 중복 금지 규칙(도입·상투구·식재료·무브 로테이션·진척 숫자 칭찬 금지·대조 의무). "동어반복은 잔소리"라는 원칙을 작문 단에서 한 번 더 못 박습니다.
[이번 주 상황] 그날의 데이터
충족/부족 식품군(=영양거울, 집+기관 전체) · 잘 먹는 음식[집 끼니 기준·괄호=빈도] · 검증된 추천(오늘 타깃 식재료→인기 음식, 타깃 식품군과 일치 강제) · 거부(집/기관 분리) · 시계열 사실 · 집 끼니만 평가 · 등원(기관 메뉴는 부모가 못 바꿈).
[사실 카드] 말해도 되는 사실의 전부
코드가 시계열로 계산한 '말해도 되는 사실' 전부 — 점심/아침/저녁 기록·환경 92%·자주 오르는 음식·거부 라벨까지. 손은 여기 적힌 라벨대로만 써야 합니다('단발 1회'를 '계속·반복'으로 일반화 금지). 환각 차단의 핵심 장치.
[오늘의 코칭 각도] ⭐ 두뇌가 고른 시나리오
§2 일간 두뇌가 고른 시나리오가 그대로 여기에 주입됩니다. 이 줄이 오늘 편지의 초점을 결정합니다(여기선 nutrient-gap 각도).
[오늘의 타깃] 코드가 확정 — 손은 고르지 않음
"코드가 확정함, 당신은 고르지 마라." 타깃(여기선 비타민A채소)은 두뇌 힌트→코드 회전으로 결정됩니다. 손은 '무엇을' 고르지 않고 '주어진 타깃을 따뜻하게 풀어 쓰기'만 합니다.
[오늘의 코칭 무브] 결정론 로테이션
매일 다른 행동방식을 강제하는 결정론 회전(여기선 '잘게 섞어 주기'). 같은 '곁들이기'만 매일 반복되는 것을 막습니다.
[이번 주 코칭 방향] 주간 두뇌의 behavior_goal·아크
②주간 두뇌가 정한 부모 행동변화(저녁 한 끼 화면 끄기)와 아크 단계를 톤·초점으로 전달. "이번 주 진단은 첫 편지에 이미 했으니 다시 서술 말 것" 같은 회전 가드도 포함.
[간식 평가] 별도 간식 엔진
끼니와 분리된 간식 엔진의 결과. 질식 방지 조리 표시(반으로 잘라·익혀·잘게)를 임의로 통째 표현으로 바꾸지 못하게 보존합니다.
[안전·정직 가드] 괴식·저염·곡물 형태
괴식 차단(단 과일·우유에 콩/두부/생선 금지, 김치에 다른 재료 섞기 금지) · 저염(짠맛을 입맛 발달로 긍정 금지) · 주식 곡물 형태(밀→빵·면·떡, 쌀→밥·떡으로만). 신뢰를 깨는 조합을 작문 단에서 막습니다.
작성 지침 편지 스펙
3~5문장(영양거울/간식 녹이면 최대 6) · ⓐ공감 ⓑ사실 1개 ⓒ행동 1개 · 영양거울 + 음식 추천 항상 포함 · 집/기관 구분 · 끝줄 권유는 하루 하나 · 최종 출력은 {"letter","oneliner"} JSON.
4

워크드 예시 — 2026-06-15 아린의 실제 숫자

End-to-End Trace

위 두 프롬프트가 실제로 통과하는 길을 숫자로 따라가 봅니다. 결정론이 깐 신호 → 주간 두뇌의 닻 → 일간 두뇌의 결정(why 포함) → 손의 편지. 위에서 아래로 흐릅니다.

① 결정론 코드
집 부족 = 콩류·과일 · 화면·이동 식사 92%(기록 12끼 중 11회) · 13개 후보 시나리오를 수치로 계산(발동가능 = mealtime-atmosphere · new-refusal · home-daycare-gap · nutrient-gap · plateau).
② 주간 두뇌 V4-Pro · W25
레버 = environment · 타깃 = 콩류 · 부모 행동 = "저녁 한 끼 TV 끄고 식탁". 소견: 결핍·거부는 없고 잘 떠먹지만 화면·이동 식사 91%로 식사 집중이 무너진 상태 → 음식보다 환경이 큰 병목.
③ 일간 두뇌 V4-Pro · pickActionByBrain
최근 4일 연속 환경 각도 + 콩류를 계속 미뤄 옴 → 원칙④(음식 결핍 영영 미루지 말기)가 발동. why — "최근 4일 연속 환경 각도, 콩류 계속 미뤄짐 → 오늘은 음식 날" 결정: scenarioId = nutrient-gap · useFood = true · planTarget = 콩류(코드가 회전하며 비타민A채소 타깃으로 확정 → 손 프롬프트의 [오늘의 타깃] 줄).
④ 손 intro일 → V4-Pro
두뇌가 고른 nutrient-gap 각도 + 타깃 + '잘게 섞기' 무브 + 모든 데이터·가드를 받아 따뜻한 편지로 작문. 영양거울(전체 균형은 어린이집 덕) + 타깃 추천(콩류 일치) + 환경 리마인드를 한 통에.
결과 편지 letter
2026-06-15 아린에게 발행된 편지(요지) "뷔페에서 이것저것 맛보는 모습… 어린이집 덕분에 전체 영양 균형은 잘 잡혀 있는데, 집 끼니를 들여다보니 콩류가 좀 드문 편이에요. 저녁 밥 지을 때 두부를 아주 잘게 으깨서 한두 숟갈만 슬쩍 섞어보세요… 나중에 유부맑은국이나 순두부찌개처럼…"
= 영양거울 종합(전체는 기관 덕·집은 콩류 드묾) + 콩류 추천 일치(두부→유부맑은국·순두부찌개) + 환경 리마인드(주간 닻 존중). 두뇌·코드가 정한 각도·타깃·무브가 한 글자도 어긋나지 않고 문장으로 옮겨졌습니다.
5

데이터 출처 — 한 줄 표

Provenance

위 프롬프트의 모든 칸은 만들어 낸 게 아니라 아래 데이터 자산에서 끌어온 것입니다. 어디서 와서 무엇으로 쓰이는지.

데이터무엇프롬프트에서의 역할
meal_logs끼니·재료·환경칩(부모 입력)영양거울·사실 카드·잘 먹는 음식·거부·환경 92%의 원천
ingredients / food-graph.json1115 엣지·201 노드(dietary4u 합산)사촌·궁합·추천 후보 풀(②결정론 추천)
ingredient-recipes / kit-dish-matrix또래 인기 음식 · 괴식 게이트'오늘 타깃→인기 음식' 추천명 + 괴식 조합 차단
weekly_plans주간 두뇌의 닻(레버·타깃·behavior_goal)[최근 3주 주간계획] · [이번 주 코칭 방향]
coach_letters과거 편지[최근 보낸 편지] — 겹침 회피 입력
LLMDeepSeek V4-Pro + V4-Flash (폴백 Claude)V4-Pro = 주간 두뇌 · 일간 두뇌 · intro 손 / V4-Flash = 일반 손 · 실패 시 Claude Sonnet/Haiku 자동 폴백

★ 자녀당 LLM 콜 ≈ 일간 두뇌 1 + 손 1~5(JSON 재시도) + 주간 1(주 1회 → 하루로 환산하면 ¼). 두뇌는 카나리아·?brain 플래그를 떼고 전 자녀 라이브입니다.