Already Told You: 작업 하나 자동화하기
한 번에 하나의 작업을 평이한 영어로 처리하며, 각 단계마다 사용자 확인을 받습니다. ~/already-told-you/ 외부의 어떤 파일도 사용자의 동의 없이 생성하거나 변경하지 않습니다.
- 작업 선택. 가장 최근
~/already-told-you/<YYYY-MM-DD>/findings.json파일을 읽습니다 (Glob). 파일이 없으면 "/already-told-you:run 먼저 실행" 메시지를 표시하고 중단합니다. D 섹션을 번호 목록으로 표시합니다: 제목, 현재 주당 시간 → 자동화 후 시간, 제안된how.$ARGUMENTS에 작업 이름이 지정되어 있으면 그것을 사용하고, 그렇지 않으면 사용자에게 어떤 작업을 진행할지 묻습니다. - 형태 합의. 작업을 다음과 같이 다시 설명합니다: 트리거 (언제/누가 시작하는가) → Claude가 하는 일 → 결과물 → 사람이 승인하는 위치. 아래 옵션을 사용하여 자동화 유형을 확인하고, 사용자가 원하면 변경합니다. 누락된 정보만 물어봅니다 (어느 폴더, 어떤 앱, 몇 시, 결과물이 어디로 가야 하는지).
- 스킬 만들기. 모든 자동화는 스킬을 통해 실행됩니다. C 섹션에서 이 작업에 대한 스킬 초안이 있다면
<report>/skills/<name>/SKILL.md를 시작으로 사용하고, 없다면 같은 규칙으로 새 초안을 작성합니다 (frontmattername+description은 사용자의 말을 인용; 번호 단계; 마지막 단계 = 승인). 초안을 보여주고 사용자와 함께 다듬은 후, 번들 설치 프로그램을 사용하여 설치합니다. 직접 skills 폴더에 작성하지 마십시오: 설치 위치를 묻고 (~/.claude/skills= 모든 프로젝트,${CLAUDE_PROJECT_DIR}/.claude/skills= 이 프로젝트),python3 ${CLAUDE_PLUGIN_ROOT}/scripts/install_skill.py --check --src <report>/skills/<name> --dest <dest>를 실행한 후 사용자 동의를 받아python3 ${CLAUDE_PLUGIN_ROOT}/scripts/install_skill.py --install --src <report>/skills/<name> --dest <dest>를 실행합니다 (권한을 요청하며, 사용자가--force에 동의하지 않으면 기존 스킬을 덮어쓰지 않습니다). 승인 단계: 작업이 전송, 게시, 게시, 결제 또는 삭제를 수행하는 경우, 스킬은 결과물을 준비하고 중단됩니다. 예약 실행에는 물어볼 사람이 없으므로, 예약 실행에서는 스킬이 초안을 폴더에 작성하거나 (또는 앱 내 초안, 예: 이메일 초안) 사용자가 나중에 승인합니다. 예약 실행이 전송을 수행하지 않도록 합니다. - 연결 / 예약 - 선택한 유형에 필요한 것만 수행합니다:
skill + MCP: 작업에 필요한 앱 연결 이름을 말합니다. 연결되어 있지 않으면 사용자에게 방법을 알려줍니다 (claude mcp add ...(앱 문서 참조),/mcp로 확인, 또는 claude.ai 커넥터 사용). 비밀번호를 파일이나 채팅에 붙여넣지 마십시오. API 키는 사용자의 비밀 저장소나 환경 변수에 있어야 합니다.schedule (desktop): Claude Code Desktop 앱 → Routines → 새 로컬 작업으로 가는 단계별 클릭 방법을 제공하며, 붙여넣을 정확한 프롬프트 (/<skill-name>및 추가 세부 사항), 일정, 프로젝트 폴더, 권한 선택을 포함합니다. 앱이 열려 있고 컴퓨터가 깨어 있는 동안에만 실행된다는 점을 상기시킵니다.schedule (routine): 정확한 명령줄을 제공합니다 (예:/schedule every Monday at 9am, run /<skill-name> ...). GitHub 저장소의 새 복사본과 커넥터를 사용하여 클라우드에서 실행되며, 로컬 파일은 필요하지 않습니다.schedule (cron)(macOS): 아래 launchd 템플릿을 작성합니다.command -v claude로 claude 경로를 찾습니다 (실행 전에 물어봄). 작성된 plist 파일을~/already-told-you/automation/<label>.plist에 저장하고 보여줍니다. 사용자 동의 후~/Library/LaunchAgents/로 복사하고launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<label>.plist로 로드합니다 (각 명령은 권한을 요청함).--allowedTools에는 작업에 필요한 도구만 나열해야 하며,--dangerously-skip-permissions는 절대 사용하지 않습니다. Linux에서는 사용자가crontab -e로 추가할 수 있는 해당 crontab 라인을 보여줍니다.
- 한 번 시도 (사용자가 동의하는 경우): 스킬을 지금 직접 실행하고 생성된 초안을 보여줍니다.
- 완료. 설정된 내용, 승인이 이루어지는 위치, 절약되는 시간 (보고서의 현재 주당 시간 → 자동화 후 시간), 정확히 중단하는 방법을 요약합니다.
자동화 옵션 (code.claude.com/docs 기준, 2026년 10월 - 이 옵션만 사용)
작업을 완전히 수행할 수 있는 가장 가벼운 옵션을 선택합니다. how 필드는 다음 중 하나를 취합니다: skill, skill + MCP, schedule (desktop), schedule (routine), schedule (cron).
skill- 작업이 매번 동일한 레시피이며 사용자가 시작합니다.~/.claude/skills/<name>/(모든 프로젝트) 또는<project>/.claude/skills/<name>/(하나의 프로젝트)에 있는 스킬은 15분 분량의 설명 및 안내를 하나의/<name>명령으로 전환합니다. 일반적으로 C 섹션에서도 초안이 작성됩니다.skill + MCP- 레시피에 다른 앱(이메일, 캘린더, Notion, Slack, 데이터베이스 등)이 필요합니다. 스킬이 MCP 서버를 통해 해당 앱을 호출합니다. 사용자는claude mcp add ...또는/mcp로 연결하거나 claude.ai 커넥터를 사용합니다. 기록에서 사용자가 해당 앱을 사용한다는 것이 확인된 경우에만 특정 앱 이름을 지정합니다.schedule (desktop)- 주기적으로 실행되어야 하며 로컬 파일이 필요합니다. Claude Code Desktop 앱의 데스크톱 예약 작업 (Routines 페이지 → 새 로컬 작업)은 선택한 시간과 빈도로 새 세션을 시작합니다. 사용자 머신에서 실행되며, 앱이 열려 있고 컴퓨터가 깨어 있는 동안에만 실행됩니다. 권한은 작업별로 설정됩니다.schedule (routine)- 주기적으로 실행되어야 하며 로컬 파일이 필요하지 않습니다 (GitHub 저장소 또는 커넥터를 통해 작동). 루틴은 노트북이 닫혀 있어도 Anthropic 클라우드에서 실행됩니다. Claude Code에서/schedule로 생성하거나 (예:/schedule every Monday at 9am, ...) claude.ai/code/routines에서 생성합니다. 연구 미리보기, Pro/Max/Team/Enterprise 요금제, 최소 간격 1시간.schedule (cron)- 데스크톱 앱이 없을 때의 대체 방법: macOSlaunchd(또는cron)가 설정된 시간에claude -p "/<skill-name>"을 헤드리스로 실행하며,--allowedTools에는 작업에 필요한 도구만 나열합니다.
반복 작업에 적합하지 않은 옵션: /loop 및 세션 cron 작업은 Claude Code 세션이 열려 있는 동안에만 실행되며 7일 후에 만료됩니다.
모든 자동화에 대한 승인 규칙: 전송, 게시, 결제 또는 삭제하는 모든 작업은 사람의 승인 단계에서 중단됩니다 (실행이 초안 또는 미리보기를 준비하고, 사용자가 확인한 후에야 실행됩니다).
launchd 템플릿 (schedule (cron) on macOS)
모든 {{...}}를 채우고 <label>.plist로 저장합니다:
{{label}}- 예:com.already-told-you.weekly-client-update{{claude}}-command -v claude가 출력하는 절대 경로{{skill}}- 설치된 스킬 이름{{tools}}- 작업에 필요한 도구만, 예:Read,Write(~/drafts/**),Bash(git log *){{project}}- 작업이 수행되는 프로젝트 폴더의 절대 경로{{weekday}}/{{hour}}/{{minute}}- 0 = 일요일; hour 0-23{{home}}- 사용자의 홈 폴더 전체 경로 (launchd는~를 확장하지 않음)
파일의 첫 줄은 XML 선언이어야 하며, 그 다음 Apple plist DOCTYPE 줄 (PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd")이어야 합니다. 그 다음:
<plist version="1.0">
<dict>
<key>Label</key><string>{{label}}</string>
<key>WorkingDirectory</key><string>{{project}}</string>
<key>ProgramArguments</key>
<array>
<string>{{claude}}</string>
<string>-p</string>
<string>/{{skill}} (scheduled run: prepare drafts only, never send, publish, pay or delete)</string>
<string>--allowedTools</string>
<string>{{tools}}</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key><integer>{{weekday}}</integer>
<key>Hour</key><integer>{{hour}}</integer>
<key>Minute</key><integer>{{minute}}</integer>
</dict>
<key>StandardOutPath</key><string>{{home}}/already-told-you/automation/{{label}}.log</string>
<key>StandardErrorPath</key><string>{{home}}/already-told-you/automation/{{label}}.log</string>
</dict>
</plist>
완성된 파일을 사용자에게 보여주기 전에 plutil -lint <file>로 확인합니다.