Community코딩 & 개발github.com

jsahani/already-told-you

이미 알려준 보고서의 D 섹션에서 반복 작업 하나를 골라, 스킬, 스킬+앱 연결(MCP), 또는 예약 실행으로 자동화를 설정합니다. 모든 단계에서 사용자 확인을 거치며, 전송/게시/결제/삭제 전에는 반드시 사람의 승인 단계가 있습니다.

already-told-you란 무엇인가요?

이 스킬은 **Already Told You** 보고서에서 가장 반복적인 작업 하나를 골라 완전한 자동화로 전환합니다. 사용자의 `~/already-told-you/` 디렉토리에 있는 최신 `findings.json`에서 D 섹션의 작업을 읽고, 사용자에게 번호 목록으로 보여준 뒤 협의하여 자동화 유형을 결정합니다. 지원하는 자동화 유형은 **스킬**(수동 실행), **스킬 + MCP**(앱 연결 필요), **데스크톱 예약**(Claude Code Desktop 앱의 Routines), **루틴 예약**(Anthropic 클라우드에서 실행), **cron 예약**(macOS launchd 또는 Linux crontab)입니다. 각 유형에 맞춰 스킬 파일을 생성하고 설치하며, 작업이 전송/게시/결제/삭제를 포함하는 경우 최종 승인 단계를 반드시 남깁니다. 예약 실행은 초안까지만 작성하고 사용자가 이후에 승인하도록 설계되어 있으며, 모든 변경 전에 사용자에게 명시적으로 확인을 요청합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jsahani/already-told-you/tree/HEAD/skills/automate

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

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

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

문서

Already Told You: 작업 하나 자동화하기

한 번에 하나의 작업을 평이한 영어로 처리하며, 각 단계마다 사용자 확인을 받습니다. ~/already-told-you/ 외부의 어떤 파일도 사용자의 동의 없이 생성하거나 변경하지 않습니다.

  1. 작업 선택. 가장 최근 ~/already-told-you/<YYYY-MM-DD>/findings.json 파일을 읽습니다 (Glob). 파일이 없으면 "/already-told-you:run 먼저 실행" 메시지를 표시하고 중단합니다. D 섹션을 번호 목록으로 표시합니다: 제목, 현재 주당 시간 → 자동화 후 시간, 제안된 how. $ARGUMENTS에 작업 이름이 지정되어 있으면 그것을 사용하고, 그렇지 않으면 사용자에게 어떤 작업을 진행할지 묻습니다.
  2. 형태 합의. 작업을 다음과 같이 다시 설명합니다: 트리거 (언제/누가 시작하는가) → Claude가 하는 일 → 결과물 → 사람이 승인하는 위치. 아래 옵션을 사용하여 자동화 유형을 확인하고, 사용자가 원하면 변경합니다. 누락된 정보만 물어봅니다 (어느 폴더, 어떤 앱, 몇 시, 결과물이 어디로 가야 하는지).
  3. 스킬 만들기. 모든 자동화는 스킬을 통해 실행됩니다. C 섹션에서 이 작업에 대한 스킬 초안이 있다면 <report>/skills/<name>/SKILL.md를 시작으로 사용하고, 없다면 같은 규칙으로 새 초안을 작성합니다 (frontmatter name + 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에 동의하지 않으면 기존 스킬을 덮어쓰지 않습니다). 승인 단계: 작업이 전송, 게시, 게시, 결제 또는 삭제를 수행하는 경우, 스킬은 결과물을 준비하고 중단됩니다. 예약 실행에는 물어볼 사람이 없으므로, 예약 실행에서는 스킬이 초안을 폴더에 작성하거나 (또는 앱 내 초안, 예: 이메일 초안) 사용자가 나중에 승인합니다. 예약 실행이 전송을 수행하지 않도록 합니다.
  4. 연결 / 예약 - 선택한 유형에 필요한 것만 수행합니다:
    • 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 라인을 보여줍니다.
  5. 한 번 시도 (사용자가 동의하는 경우): 스킬을 지금 직접 실행하고 생성된 초안을 보여줍니다.
  6. 완료. 설정된 내용, 승인이 이루어지는 위치, 절약되는 시간 (보고서의 현재 주당 시간 → 자동화 후 시간), 정확히 중단하는 방법을 요약합니다.

자동화 옵션 (code.claude.com/docs 기준, 2026년 10월 - 이 옵션만 사용)

작업을 완전히 수행할 수 있는 가장 가벼운 옵션을 선택합니다. how 필드는 다음 중 하나를 취합니다: skill, skill + MCP, schedule (desktop), schedule (routine), schedule (cron).

  1. skill - 작업이 매번 동일한 레시피이며 사용자가 시작합니다. ~/.claude/skills/<name>/ (모든 프로젝트) 또는 <project>/.claude/skills/<name>/ (하나의 프로젝트)에 있는 스킬은 15분 분량의 설명 및 안내를 하나의 /<name> 명령으로 전환합니다. 일반적으로 C 섹션에서도 초안이 작성됩니다.
  2. skill + MCP - 레시피에 다른 앱(이메일, 캘린더, Notion, Slack, 데이터베이스 등)이 필요합니다. 스킬이 MCP 서버를 통해 해당 앱을 호출합니다. 사용자는 claude mcp add ... 또는 /mcp로 연결하거나 claude.ai 커넥터를 사용합니다. 기록에서 사용자가 해당 앱을 사용한다는 것이 확인된 경우에만 특정 앱 이름을 지정합니다.
  3. schedule (desktop) - 주기적으로 실행되어야 하며 로컬 파일이 필요합니다. Claude Code Desktop 앱의 데스크톱 예약 작업 (Routines 페이지 → 새 로컬 작업)은 선택한 시간과 빈도로 새 세션을 시작합니다. 사용자 머신에서 실행되며, 앱이 열려 있고 컴퓨터가 깨어 있는 동안에만 실행됩니다. 권한은 작업별로 설정됩니다.
  4. schedule (routine) - 주기적으로 실행되어야 하며 로컬 파일이 필요하지 않습니다 (GitHub 저장소 또는 커넥터를 통해 작동). 루틴은 노트북이 닫혀 있어도 Anthropic 클라우드에서 실행됩니다. Claude Code에서 /schedule로 생성하거나 (예: /schedule every Monday at 9am, ...) claude.ai/code/routines에서 생성합니다. 연구 미리보기, Pro/Max/Team/Enterprise 요금제, 최소 간격 1시간.
  5. schedule (cron) - 데스크톱 앱이 없을 때의 대체 방법: macOS launchd (또는 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>로 확인합니다.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

관련 스킬