Community코딩 & 개발github.com

LucaFilippetti99/PersonalCoach

Luca의 장보기 목록(spesa.json), 냉장고(frigo.json) 및 프로필을 바탕으로 주간 식단 계획을 생성하며, 정의 단계에 맞춰 대략적인 1인분 양과 각 요리에 대한 간단한 레시피를 제공합니다. Luca가 식단 계획, 주간 메뉴, 앞으로 며칠간 요리할 것, 장본 재료나 냉장고에 있는 재료 활용법을 묻거나 계획을 수정/재작성할 때 사용하세요.

PersonalCoach란 무엇인가요?

이 스킬은 Luca의 개인 코치 역할을 하며, 그의 식료품 재고(frigo.json), 장보기 목록(spesa.json), 개인 프로필(profilo.md) 및 설정(impostazioni.json)을 기반으로 완전히 맞춤화된 주간 식단 계획을 생성합니다. 유연성과 효율성을 염두에 두고 설계되어, 냉장고와 찬장에 있는 재료를 최우선으로 사용하여 식품 낭비를 최소화하고 식료품비를 절약합니다. 또한 Luca의 운동 일정에 맞춰 칼로리와 단백질 섭취를 조절하며, 지루함을 방지하기 위해 다양한 요리를 권장합니다. 이 스킬은 로컬 웹 애플리케이션과 완전히 통합되어 있으며, JSON 스키마를 엄격히 준수하여 식단, 쇼핑 목록, 재고 간의 일관성을 유지합니다. 각 식사는 3-5단계의 간단한 레시피와 함께 제공되며, 지난 식단의 잔반을 활용하는 방법에 대한 제안도 포함됩니다. Luca가 식사를 완료했다고 표시하거나 장을 봤다고 알리면 이 스킬이 자동으로 재고와 쇼핑 목록을 업데이트하여 모든 정보를 최신 상태로 유지합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LucaFilippetti99/PersonalCoach/tree/HEAD/skills/piano-pasti-settimanale

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

주간 식단 계획

식단 계획은 Luca의 로컬 웹앱(식품 섹션)에서 읽히므로, JSON 파일은 아래 스키마를 문자 그대로 따라야 합니다.

읽어야 할 입력 파일

  1. profilo.md — 목표, 제외 식품, 선호도, 식사 횟수, 보충제.
  2. frigo.json — 이미 집에 있는 것 (유통기한 포함): 먼저 사용해야 합니다. 냉장고와 식료품 저장실을 모두 포함: dove 필드는 "frigo" 또는 "dispensa" 값을 가짐 (없는 경우: 탄수화물, 지방, 캔류는 저장실, 나머지는 냉장고).
  3. spesa.json — 현재 장보기 목록: 냉장고와 함께 식단의 기본입니다.
  4. impostazioni.json — target.kcal 및 target.proteine_g; calendario로 운동 요일 파악; sempre_in_casa (예: 소금, 기름: 항상 있으므로 장보기 목록에 포함하지 않음).
  5. piani-pasti/의 마지막 파일 — 같은 요리를 반복하지 않기 위함.
  6. log/misure.json — 체중 추세가 portion 조정을 시사하는 경우.

frigo.json 또는 impostazioni.json이 아직 존재하지 않으면, 넘어갑니다.

Luca는 웹앱에서도 식단을 수정합니다 (식사 추가, 변경, 삭제, 먹은 것으로 표시). 해당 주 파일이 이미 있으면 그 파일을 기준으로 삼습니다: "fatto": true인 식사는 건드리지 말고, Luca가 직접 작성한 식사를 덮어쓰지 마십시오(요청하지 않는 한). 누락된 요일이나 식사만 완성하십시오.

규칙

  • 냉장고 우선, 그다음 장보기: frigo.json의 품목을 먼저 사용하며, 특히 유통기한이 임박한 것부터 사용합니다. 그다음 장보기 목록을 사용합니다. 재료의 최소 80-90%는 냉장고 + 장보기에서 가져와야 합니다. 부족한 것은 da_comprare_extra에 간단한 이유와 함께 추가합니다.
  • 일관된 이름: 재료에는 frigo.json / spesa.json에 있는 이름을 그대로 사용합니다 (예: "Petto di pollo", "pollo"가 아님). 그래야 웹앱이 이미 집에 있는 것을 인식할 수 있습니다.
  • 제로 웨이스트: 부패하기 쉬운 재료(야채, 고기, 신선한 생선)는 초반에 사용합니다. 똑똑한 leftovers 계획: 한 번 요리하여 두 번 사용합니다.
  • 정의 단계, 적당한 열량 부족: 매 주 식사에 단백질 포함, 많은 야채, 탄수화물 포함(운동 요일에는 더 풍부하게). 식사 거르기나 극단적인 식단 금지. 하루 섭취량을 target.kcal 및 target.proteine_g에 가깝게 유지합니다.
  • 대략적인 1인분 양: 실용적인 단위(주먹, 손바닥, 큰술, "중간 크기 가슴살 1개")를 사용하고, 주 탄수화물에 대해서만 괄호 안에 그램을 표시합니다.
  • 다양성: Luca는 매일 요리하는 것을 즐기므로, 간단하지만 다양한 요리, 같은 요리는 주당 최대 2회까지만 반복합니다. 이전 식단에서 Luca가 좋아했던 요리는 같은 요리 이름으로 다시 제안할 수 있습니다 (웹앱이 이를 레시피북에 수집합니다).
  • 주말: Luca는 주말에 외식합니다 (주당 최소 피자 한 번): 해당 식사는 계획하지 말거나, 메모에 "fuori"라고 표시합니다.
  • profilo.md에 명시된 제외 식품을 항상 존중합니다.

장보기, 냉장고 및 저장실 (웹앱과 동일한 규칙)

웹앱은 간단한 규칙으로 식단, 장보기, 집 재고를 일관되게 유지합니다. 여러분도 이 규칙을 따라 파일이 일관되게 유지되도록 하십시오.

  • 식단을 작성한 후, spesa.json을 업데이트합니다: 아직 먹지 않은 식사(오늘 이후)의 각 재료에 대해 frigo.json(냉장고 또는 저장실)에 없고, sempre_in_casa에 없으며, 이미 목록에 없는 경우, 항목 { "nome", "categoria", "quantita": "", "auto": true }를 추가합니다. auto: true는 "식단을 위해 추가됨"을 의미합니다: 식사가 변경되면 웹앱이 자동으로 제거합니다. auto가 없는 항목(Luca가 작성한 것)은 건드리지 마십시오.
  • da_comprare_extra는 선택적 제안(예: 생선 양념용 레몬)을 위한 것이며, 식사에 필요한 재료를 위한 것이 아닙니다.
  • 이름: 웹앱은 대소문자와 악센트를 무시하고 단수=복수("uovo" = "uova")로 이름을 비교하지만, "pollo"와 "petto di pollo"는 서로 다른 것으로 간주합니다: frigo.json / spesa.json의 이름을 그대로 사용하십시오.
  • Luca가 식사를 먹었다고 말할 때: "fatto": true로 설정하고, 냉장고에 있는 재료는 frigo.json에서 제거하고(저장실은 유지), 식사의 "consumati"에 저장합니다(원래 상태 그대로 제거된 항목). 그래야 Luca가 웹앱에서 체크를 해제하면 다시 재고에 포함됩니다.
  • Luca가 장을 봤다고 말할 때: 구매한 항목을 spesa.json에서 제거하고, dove와 함께 frigo.json에 추가합니다 ("dispensa" – 탄수화물, 지방, 캔류; 나머지는 "frigo"), scadenza를 알고 있으면 함께 추가합니다.

간단 레시피

각 식사에는 ricetta 필드가 있습니다: 각각 한 줄씩 3-5개의 짧은 단계로 구성된 배열이며, 조리 시간을 포함합니다. 명백한 단계("접시에 담는다")는 넣지 마십시오. 요리가 이전 날의 leftovers를 사용하는 경우, 첫 번째 단계에서 이를 명시하십시오.

파일 스키마

{
  "settimana": "AAAA-Www",
  "kcal_giorno_indicative": 2150,
  "giorni": [
    {
      "giorno": "lunedì",
      "pasti": [
        {
          "tipo": "pranzo",
          "piatto": "Riso con pollo e zucchine",
          "ingredienti": [{ "nome": "Riso basmati", "porzione": "1 pugno abbondante (~80 g)" }],
          "ricetta": ["Cuoci il riso in acqua salata (circa 12 min)", "…"],
          "note": "",
          "fatto": true
        }
      ]
    }
  ],
  "da_comprare_extra": [{ "nome": "Limoni", "categoria": "frutta", "quantita": "2", "motivo": "per condire il pesce" }]
}
  • giorno: 소문자 요일 이름 (lunedì … domenica). tipo: pranzo, cena, colazione 또는 spuntino.
  • da_comprare_extra의 categoria: proteine, carboidrati, verdure, frutta, latticini, grassi, dispensa, altro 중 하나.
  • fatto는 선택 사항: 이미 먹은 식사에만 true (Luca가 웹앱에서 설정하거나 여러분이 Luca가 무엇을 먹었는지 들었을 때 설정); 미래의 식사에서는 생략합니다.
  • consumati는 선택 사항: 먹은 식사에만 있으며, 냉장고에서 제거된 항목을 포함합니다 (위 참조). 수정하지 마십시오.
  • 다른 필드를 추가하지 마십시오.

출력

  1. 식단을 piani-pasti/AAAA-Www.json (ISO 주차)에 저장하며, 위 스키마를 정확히 준수합니다.
  2. 누락된 재료(위의 "장보기, 냉장고 및 저장실" 참조)로 spesa.json을 업데이트합니다.
  3. 채팅에 간략한 요약을 표시합니다: 각 요일별 주요 요리를 한 줄로, 장보기 목록에 추가한 내용, da_comprare_extra 목록, 2-3가지 준비 팁 (미리 요리할 것). Luca에게 식단이 웹앱의 식품 섹션에서 이미 볼 수 있음을 알립니다.

관련 스킬