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を出発点にします。なければ、同じルール(frontmatter にname+description(ユーザーの言葉を引用)、番号付きステップ、最後のステップは承認)で新しいドラフトをそこに作成します。表示し、ユーザーと調整した後、バンドルされたインストーラでインストールします。自分でスキルフォルダに書き込んではいけません。インストール先を尋ねます(~/.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テンプレートに値を入力します。claudeのパスをcommand -v 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行をユーザーがcrontab -eで追加できるように表示します。
- 一度試す(ユーザーが同意した場合):スキルを手動で今実行し、生成された下書きを表示します。
- 完了。 何が設定されたか、承認がどこで行われるか、節約できる時間(レポートの現在の週間時間 → 自動化後の分数)、そして正確な停止方法をまとめます。
自動化オプション(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分の説明と操作が1つの/<name>コマンドになります。通常セクションCでもドラフトされます。skill + MCP- レシピに別のアプリ(メール、カレンダー、Notion、Slack、データベース等)が必要です。スキルはMCPサーバーを通じてそのアプリを呼び出します。ユーザーはclaude mcp add ...または/mcpで接続するか、claude.aiコネクタを使用します。履歴で使用が確認されている場合にのみ特定のアプリを指定します。schedule (desktop)- 定期的に実行する必要があり、ローカルファイルが必要です。Claude Code Desktopアプリの デスクトップスケジュールタスク(Routinesページ → 新しいローカルタスク)は、選択した時刻と頻度で新しいセッションを開始します。ユーザーのマシンで動作し、アプリが開いていてコンピュータが起動している間のみ動作します。権限はタスクごとに設定されます。schedule (routine)- 定期的に実行する必要があり、ローカルファイルは不要です(GitHubリポジトリまたはコネクタで動作します)。Routines はラップトップが閉じていても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 = 日曜日; 時 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> で確認します。