Communitygithub.com

mgummich/mealie-skill

Mealie 인스턴스를 REST API를 통해 정리합니다 — LLM이 판단하고 스크립트가 쓰기 작업을 수행합니다. AI 에이전트 스킬이자 독립형 CLI입니다.

mealie-skill란 무엇인가요?

이 스킬은 Mealie 레시피 관리 인스턴스를 유지보수하기 위한 전문 도구입니다. 레시피의 빈 필드 채우기, 식재료를 식품 목록과 대조하여 파싱, 단계 번역, 미터법 변환, 이미지 설정 등 레시피를 개선하고, 식품과 단위를 정리하며(설명, 복수형, 라벨, 별칭 추가, 중복 병합), 카테고리/태그/도구를 통합하고, 요리책을 생성하며, 중복 레시피와 끊어진 링크를 찾고, 식단 태그를 추론하며, URL에서 레시피를 가져오고, 식사 계획을 채우는 작업을 수행합니다. 이 스킬은 Claude Code, Cursor, Codex 등 AI 에이전트 환경에서 사용할 수 있으며, `scripts/mealie_ctx.py`라는 CLI 도구를 통해 모든 API 호출을 래핑합니다. 항상 **분석 -> 계획 -> 실행**의 세 단계로 진행되며, 계획이 명시적으로 승인되기 전에는 어떤 쓰기 작업도 수행하지 않습니다. 각 작업 모드(레시피, 식품, 단위, 라벨, 조직자, 요리책, 유지보수 등)에 대한 상세 참조 문서가 마크다운 파일로 제공되며, `mcp-mealie` MCP 서버가 연결된 경우 분석을 위해 이를 사용하여 효율성을 높입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add mgummich/mealie-skill

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

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

문서

Mealie 유지보수

항상 세 단계: 분석 -> 계획 -> 실행. 계획이 명시적으로 승인되지 않으면 아무것도 작성하지 않습니다. 하나의 계획에 두 가지 종류의 작업을 혼합하지 마십시오.

모드 선택 및 해당 참조 읽기

현재 모드에 대한 참조 만 읽고, 모두 읽지 마십시오:

작업참조
레시피 정리, 식재료 파싱, 필드 채우기references/recipes.md
식품: 누락, 매칭, 중복references/foods.md
단위: 누락, 중복, 미터법 변환references/units.md
쇼핑 목록 라벨: 팔레트, 누락, 축references/labels.md
카테고리, 태그, 도구 통합references/organizers.md
요리책 생성 또는 재작업references/cookbooks.md
중복 레시피, 깨진 재료 줄, 끊어진 링크, 식단 태그references/maintenance.md
레시피, 식품 및 단위의 extras 필드references/extras.md
식사 계획, URL에서 레시피 가져오기, MCP 서버 작업references/mcp.md

ACTIONS 형식은 모든 모드에서 동일합니다: references/actions.md. 2단계가 시작될 때만 해당 파일을 읽으십시오.

mcp-mealie MCP 서버가 연결될 때마다 references/mcp.md를 읽으십시오 — 다른 모든 모드의 데이터 수집 방식을 변경합니다.

도구

scripts/mealie_ctx.py는 모든 API 호출을 래핑합니다. 소스 코드를 읽지 말고 --help를 호출하십시오.

경로는 작업 디렉토리가 아닌 이 스킬 디렉토리 기준입니다 — 모든 호출 앞에 접두사를 붙이십시오. 그렇지 않으면 명령을 찾을 수 없습니다:

python .agents/skills/mealie/scripts/mealie_ctx.py <command>

setup [--check]                    연결 확인, 자격 증명 저장
index [--refresh]                  로컬 레시피 인덱스 구축
audit <what> [--limit N]           foods units labels categories tags
                                   tools recipes links extras
ctx recipe <slug> [--search T]     recipe + matching foods + organizers
                  [--full]         전체 JSON, 거의 필요하지 않음
ctx <what> [--limit N] [--group G] foods units categories tags tools
                                   cookbooks diet
usage <kind> <id>                  recipes using a food/unit/category/tag/tool
convert "<amount>" [...]           비미터법 단위 -> 미터법 + Original: 주석; °F와 inch도 포함
rules [--init]                     이 인스턴스의 하우스 룰
seed labels|units|all [--out F]    고정 어휘에 대한 액션
apply <file> [--slug S] [--dry-run]

첫 번째 audit 호출은 인덱스를 구축합니다(모든 레시피를 한 번 통과, 인스턴스 크기에 따라 시간 소요). 이후의 모든 감사는 인덱스를 읽습니다. 각 쓰기 apply 후 인덱스는 폐기되고 다시 구축됩니다.

이 중 세 가지는 수동으로 잘못 작성할 수 있는 작업을 대체합니다:

  • convert는 밀도 표와 반올림 규칙을 보유하고 Original: 주석을 반환합니다. 영국식 단위를 머릿속으로 변환하지 마십시오.
  • rules는 이 인스턴스의 결정(로케일, 카테고리 축, 용기 가정, 기본 식품 해석 표(pepper -> black pepper [ground]))을 출력합니다. 무언가를 생성하거나 이름을 바꾸기 전에 읽고, 같은 질문을 두 번 결정하지 않도록 행을 추가하십시오.
  • seed는 고정 어휘(영역 색상이 있는 29개 라벨, 미터법 단위 세트)를 ACTIONS 파일로 작성하며, 이미 존재하는 것은 건너뜁니다.

apply는 모든 액션을 .mealie.changelog.jsonl에 덮어쓴 상태와 함께 기록하고, 리스트 필드를 줄이는 patch_recipe와 Mealie 1.x용으로 작성된 요리책 페이로드(queryFilterString 하나, tags/categories/tools/requireAll* 없음)를 거부하며, 계획을 린트합니다(비미터법 단위는 치명적 오류). --dry-run은 동일한 검사를 실행합니다. 자세한 내용은 references/actions.md를 참조하십시오.

컨텍스트 명령은 이미 필터링된 데이터를 반환합니다. 전체 테이블을 필터 없이 로드하지 말고, 레시피 루프를 수동으로 구축하지 마십시오 — 인덱스가 그 역할을 합니다.

환경 변수: MEALIE_URL, MEALIE_TOKEN — MEALIE_API_TOKEN(mcp-mealie의 토큰 이름), MEALIE_BASE_URL 및 MEALIE_API_KEY도 읽습니다. 설정되지 않은 경우 스크립트는 .mealie.env 파일에서, 그 다음 작업 디렉토리의 .env 파일에서 읽습니다. 어떤 명령도 찾지 못하면 setup 힌트와 함께 중단됩니다.

스크립트는 인스턴스에 대한 네트워크 액세스가 필요합니다. 샌드박스 환경에서는 URL과 토큰이 올바른데도 연결 오류로 호출이 실패할 수 있습니다 — 이는 환경의 권한 문제이지 구성 버그가 아닙니다. 그렇게 말하고 사용자가 호출을 허용하도록 하십시오. 수동 HTTP 스크립트로 우회하지 마십시오: mealie_ctx.py만 API에 대한 유일한 경로이며, 두 번째 경로는 순서 보호 장치나 드라이 런이 없습니다. MCP 서버가 연결된 경우 해당 호출은 서버를 통해 실행되며 영향을 받지 않습니다.

setup --check는 구성만 테스트하며 직접 실행해도 안전합니다 — 연결이 불확실할 때 세션 시작 시 한 번 사용하십시오. 일반 setup은 URL과 토큰을 묻고 사용자가 실행해야 하며, 당신이 실행해서는 안 됩니다: 요청하고 기다리십시오. 채팅에서 토큰을 묻지 말고 직접 파일에 쓰지 마십시오.

mcp-mealie MCP 서버가 연결된 경우 분석에 사용하십시오: 감사 질문을 서버 측에서 처리하므로 인덱스가 전혀 구축되지 않으며, 이 스크립트가 의도적으로 갖지 못한 기능(식사 계획, URL에서 레시피 가져오기, 대화형 레시피 검색)을 다룹니다. 스크립트는 순서가 있는 배치를 유지합니다: ORDER가 필요하거나 전체 세트에 대한 드라이 런이 필요한 계획은 여전히 actions.json과 apply를 통해 진행됩니다. 먼저 references/mcp.md를 읽으십시오.

출력 스타일: 원시인

caveman 스킬을 사용할 수 있다면 이 워크플로우에 활성화하십시오. 감사, 계획 및 보고서는 긴 표 형식 출력입니다 — 정확히 압축이 필요한 경우입니다. 스킬이 없으면: 정상적으로 답변하지만 간결하게 — 산문 대신 표, 도구가 이미 출력한 내용을 반복하지 않습니다.

채팅 출력만 압축됩니다 — 분석, 계획, 보고서, 중간 의견. 두 가지는 항상 전체 ${CONTENT_LANG} 산문으로 유지됩니다:

  • Mealie에 기록되는 모든 것, 즉 actions.json의 모든 내용. 데이터베이스 콘텐츠이지 채팅이 아닙니다. references/actions.md를 참조하십시오.
  • 파괴적 작업에 대한 경고, 확실하지 않을 때의 질문, 승인 질문. 14개 레시피를 다시 작성하는 병합의 경우 명확성이 몇 개의 절약된 토큰보다 가치 있습니다.

모든 모드에 대한 규칙

아무것도 발명하지 마십시오: 재료, 양 및 단계는 구조화, 번역 및 수정만 되며 추가되거나 삭제되지 않습니다. 기존의 올바른 값은 유지됩니다.

모든 콘텐츠는 ${CONTENT_LANG}으로; 확립된 요리 용어(수비드(sous-vide), 루(roux), 가나슈(ganache))는 그대로 유지됩니다. 미터법 단위.

보고서에서 추정값을 표시하십시오. 의심스러우면 추측 대신 필드를 비워 두십시오.

생성 전에 검색하십시오 — 식품, 단위 및 조직자 모두에 대해. 철자 변형, 단수/복수 및 외국어 동등어도 확인하십시오.

파괴적 작업(merge_*, delete_organizer, retag_recipe)은 계획에 명시적으로 표시하고 영향을 받는 레시피 수를 기재하며 취소할 수 없음을 지적하십시오.

배치를 작게 유지하십시오: 실행당 최대 25개의 식품/단위 누락 또는 5개의 중복/조직자 그룹. 레시피에는 자체 규칙이 있습니다 — 재료, 단계 및 노트의 경우 계획당 하나의 레시피, 필드 수준 변경의 경우任意 개수. references/recipes.md를 참조하십시오.

중단 시, 추측성 복구 시도를 하지 마십시오 — 도달한 상태를 보고하고 질문하십시오.

관련 스킬