# Claude becerisi olarak haftalık dağıtım rutini: pazartesi taslaklar, müşteri onayları, cuma tıklama raporu

_2026-10-06 · Bir ajansın haftasını Shager'da yöneten Claude Code becerisi: plan dosyalarından taslaklar, müşteri onayları, onaylananı planlama ve cuma tıklama raporu._

Haftalık dağıtım rutini, her hafta aynı üç işi yapan bir beceridir (skill): pazartesi günü her müşterinin içerik planını hesap başına açıklamalarla Shager taslaklarına dönüştürür ve onaya gönderir; hafta ortasında onaylanan her şeyi planlar; cuma günü tıklamaları hesap bazında çeker ve raporu yazar. Claude Code'da onu `/shager-weekly plan` ya da `/shager-weekly report` ile, veya bir zamanlayıcıdan `claude -p` ile arayüzsüz olarak tetiklersiniz. İnsan kontrol noktaları taslak ile planlama arasında durur; en az maliyetle en çok hatayı yakaladıkları yer de orasıdır.

Bu yazı [temel Shager becerisi](/en/blog/build-a-claude-skill-for-shager) üzerine kuruludur. Burada odak rutinin kendisinde: girdiler, modlar, güvenlik önlemleri ve klavyenin başında kimse yokken onu nasıl çalıştıracağınız.

## Bir hafta gerçekte nasıl görünür?

Sekiz müşterisi ve yaklaşık 150 bağlı hesabı olan bir ajans düşünün. Uygulanabilir bir hafta şöyle görünür.

| Ne zaman | Mod | Beceri ne yapar | İnsanın rolü |
|---|---|---|---|
| Pazartesi 09.00 | `plan` | Her müşterinin plan dosyasını okur, medyayı yükler, taslakları oluşturur, onay ister | Çalışma sırasında yok |
| Pazartesiden çarşambaya | | Müşteriler onay linkleri üzerinden onaylar ya da değişiklik ister | Müşteri kontrol eder |
| Çarşamba 14.00 | `schedule` | Onaylanan her gönderiyi planlanan saatine yerleştirir | Müşteri temsilcisi özete göz atar |
| Cuma 15.00 | `report` | Hesap ve gönderi bazında tıklamaları çeker, her müşteri için bir rapor yazar | Müşteri temsilcisi raporu gönderir |

Rutin haftanın konularını asla kendisi uydurmaz. Bir insanın yazdığı plan dosyasıyla çalışır, çünkü strateji ajansın işidir. Ortadan kaldırdığı şey mekanik kısımdır: kırk farklı açıklama, takip linkleri, biçim seçimleri, takip.

## Plan dosyası neye benzer?

Her müşteri için her hafta, becerinin okuyabileceği bir depoda bir Markdown dosyası:

```markdown
# Harbor Fitness, week 2026-W43
workspace: Harbor Fitness
timezone: America/New_York

## Post 1
when: 2026-10-20 07:00
target: group "All studios"
format: REEL
media: https://cdn.harborfitness.example/w43/6am-class.mp4 (1080x1920, 28s)
brief: New 6am strength class starts Monday. Free first session.
link: https://harborfitness.example/6am
first comment: Book your free first session

## Post 2
when: 2026-10-23 12:00
target: group "Downtown studios"
format: FEED
media: https://cdn.harborfitness.example/w43/smoothie-bar.jpg
brief: Smoothie bar reopens after renovation. 20% off this week.
link: https://harborfitness.example/smoothie
```

Becerinin ayrıştırdığı düz metin; her müşteri temsilcisinin yeni bir araç öğrenmeden düzenleyebileceği bir dosya.

## SKILL.md

```markdown
---
name: shager-weekly
description: Run the agency's weekly Shager distribution routine. Use for "/shager-weekly plan", "/shager-weekly schedule" or "/shager-weekly report", or when asked to prepare, schedule or report this week's client posts from the plans folder.
argument-hint: "plan | schedule | report [client]"
disable-model-invocation: true
allowed-tools: Read Glob Write mcp__shager__whoami mcp__shager__list_workspaces mcp__shager__list_channels mcp__shager__list_groups mcp__shager__list_posts mcp__shager__get_post mcp__shager__get_analytics mcp__shager__upload_media_from_url mcp__shager__create_post mcp__shager__request_approval mcp__shager__schedule_post
---

# Shager weekly routine

Plans live in plans/<ISO week>/<client>.md. Reports go to reports/<ISO week>/.
Mode is the first argument. Process every client unless one is named.

## plan
For each post in each plan file:
1. Resolve workspace, group and channels. Skip channels not ACTIVE and list them.
2. upload_media_from_url with width, height and duration_ms from the plan.
3. create_post WITHOUT schedule_at: per_channel captions written from the
   brief (same facts, different wording, local detail from channel name),
   cta_url = link, campaign = "<client-slug>-<iso-week>-<n>",
   first_comment = "<first comment>: <link>", label = "W43 Post 1".
4. request_approval with the client's reviewer from plans/reviewers.md.
Write a summary: client, post label, post id, accounts, approval_url.

## schedule
For each client: list_posts with status APPROVED. For each, find its
planned time in the plan file by label and call schedule_post with
schedule_at in ISO 8601 with the workspace offset. Never schedule a post
that is not APPROVED. Never schedule a time in the past; list it instead.

## report
For each client: get_analytics from last Monday 00:00 to now (with offset).
Write reports/<week>/<client>.md with a table of clicks by account,
highest first, and the top three posts with their labels.
State plainly that these are link clicks, not leads.

## Errors
Stop the current client on 401 or 403 and record the code. On 422, record
the message against the post and continue. On 429, wait 60 seconds.
```

### Her güvenlik önlemi neden orada

`disable-model-invocation: true`, bir sohbette "bu haftanın gönderileri" geçti diye Claude'un bu rutini kendi kendine asla başlatmaması anlamına gelir. [Claude Code beceri belgelerine](https://code.claude.com/docs/en/skills) göre bu alan otomatik yüklemeyi engeller; böylece rutin yalnızca biri ya da bir şey komutu yazdığında çalışır.

`allowed-tools` listesi iş için tamdır, fazlası yoktur. `cancel_post` yok, `create_connect_link` yok, `create_workspace` yok. Arayüzsüz çalışan bir rutin, bir insanın planlamadığı şeyleri yapabilmemelidir.

Planlama yalnızca `APPROVED` durumundaki gönderilere dokunur ve bu durum ancak müşteri kendi linkinden onay verdiğinde oluşur. Bir müşteri hiç onay vermezse gönderi yayına çıkmaz ve çarşamba özeti bunu belirtir. Onayı tam bu noktaya koymanın gerekçesi [ajanslar için müşteri onayı iş akışı](/en/blog/client-approval-workflow-for-agencies) yazısında.

## Rutin hangi anahtarı kullanmalı?

Rutine ne kadar güvendiğinizi tanımlayan karar budur.

| Kurulum | Anahtar yetkileri | Sonuç |
|---|---|---|
| Yalnızca taslak | `read`, `write` | `plan` ve `report` çalışır; planlamayı bir insan Shager'da yapar |
| Onaya bağlı | `read`, `write`, `publish` ve her çalışma alanında onay zorunlu | Rutin yalnızca müşterilerin onayladığını planlar |
| Tam otomatik pilot | `read`, `write`, `publish`, onay yok | Yalnızca zaten kontrol etmeden yayınlayacağınız düşük riskli, tekrarlayan içerik için |

Çoğu ajans için önerdiğimiz ikinci satır. `publish` yetkisi, yalnızca bu rutin için https://app.shager.ai/dashboard/agents adresinde oluşturulan tek bir anahtara verilir; böylece oradaki denetim kaydı rutinin yaptığı her çağrıyı gösterir, başka hiçbir şeyi değil. Bir şey ters görünürse o anahtarı iptal edersiniz ve diğer tüm entegrasyonlar çalışmaya devam eder.

## Terminal açmadan nasıl çalıştırılır?

Claude Code'un etkileşimsiz modu bir beceriyi bir betikten çalıştırır. [Arayüzsüz mod belgeleri](https://code.claude.com/docs/en/headless), istemde `/skill-name` kullandığınızda kullanıcının çağırdığı becerilerin `-p` modunda çalıştığını ve `--allowedTools` seçeneğinin izin kuralı sözdizimiyle araçları önceden onayladığını belirtiyor. Belgeler ayrıca normalde onay isteyecek her şeyi reddeden `--permission-mode dontAsk` seçeneğini de anlatıyor; böylece beklenmedik bir araç çağrısı takılıp kalmak yerine başarısız olur.

```bash
#!/usr/bin/env bash
# run-weekly.sh  (called by cron or your CI scheduler)
set -euo pipefail
cd /srv/agency-content
export SHAGER_API_KEY="$(cat /run/secrets/shager_weekly_key)"

claude -p "/shager-weekly $1" \
  --permission-mode dontAsk \
  --allowedTools "Read,Glob,Write(reports/**),mcp__shager__whoami,mcp__shager__list_workspaces,mcp__shager__list_channels,mcp__shager__list_groups,mcp__shager__list_posts,mcp__shager__get_post,mcp__shager__get_analytics,mcp__shager__upload_media_from_url,mcp__shager__create_post,mcp__shager__request_approval,mcp__shager__schedule_post" \
  --output-format json > "logs/weekly-$1-$(date +%F).json"
```

Sunucunun yerel saatine göre crontab da şöyle:

```text
0 9 * * 1   /srv/agency-content/run-weekly.sh plan
0 14 * * 3  /srv/agency-content/run-weekly.sh schedule
0 15 * * 5  /srv/agency-content/run-weekly.sh report
```

Bu kurulum, Shager MCP sunucusunun projenin `.mcp.json` dosyasında, anahtarı `SHAGER_API_KEY` değişkeninden okuyacak şekilde kayıtlı olduğunu varsayar; [Shager'ı Claude Code'a bağlamak](/en/blog/connect-shager-to-claude-code) yazısında gösterildiği gibi. JSON çıktısı size oturum kimliğini ve son özeti verir; ekip kanalına ileteceğiniz de budur.

## Her hafta hâlâ insan gerektiren ne var?

Üç şey. Rutin bunlara karşı değil, bunların etrafında tasarlandı.

1. Plan dosyasını yazmak. Konular, teklifler ve zamanlama stratejidir.
2. Çarşamba özetini okumak. Onaylanmayanları, atlanan kanalları ve 422 retlerini listeler. Beş dakika.
3. Cuma raporunu bağlamıyla birlikte göndermek. Hesap başına tıklamalar bir gerçektir; müşteri için ne anlama geldikleri ise bir sohbettir. Müşterilere link tıklamalarının potansiyel müşteri olmadığını hatırlatın; bu açığı CRM'lerinde kapatmak isterlerse onları [hesap başına potansiyel müşteri ilişkilendirmesi](/en/blog/utm-per-account-lead-attribution) yazısına yönlendirin.

## Sık sorulan sorular

### Müşteri çarşambadan sonra onay verirse ne olur?

`/shager-weekly schedule` komutunu elle ya da perşembe günü çalışan ikinci bir cron satırıyla yeniden çalıştırın. Bu mod yalnızca henüz planlanmamış `APPROVED` gönderileri planlar ve geçmişteki saatleri reddeder; dolayısıyla iki kez çalıştırmak güvenlidir.

### Müşteri yeni bir şube eklediğinde rutin yeni hesapları bağlayabilir mi?

Tasarım gereği hayır. `create_connect_link` izinli araçların dışında bırakıldı, çünkü hesap bağlamak müşteriyi de içerir ve bilinçli bir insan eylemi olmalıdır. Yeni bir şube eklendiğinde müşteri temsilcisi bir bağlantı linki gönderir ve yeni kanalı doğru gruba ekler; sonraki çalıştırma onu otomatik olarak alır.

### Bu, Claude Code yerine Codex veya Cursor ile çalışır mı?

Shager araçları her MCP istemcisinde aynı olduğu için plan dosyaları, modlar ve güvenlik önlemleri doğrudan aktarılır. `SKILL.md` ön bilgisi ve `claude -p` çağrısı Claude Code'a özgüdür; başka istemcilerde talimatları bir istem dosyası olarak tutar ve o istemcinin kendi otomasyonuyla çalıştırırsınız.

## Sonraki adım

Rutin haftayı yönetir; [uçtan uca ajan içerik hattı](/en/blog/agent-content-pipeline-end-to-end) ise onu çevreleyen zincirin tamamını gösteriyor: müşteri brifinden üretilen medya ve açıklamalara, oradan yayınlanmış gönderilere ve ölçülen tıklamalara kadar, her Shager çağrısıyla sırasıyla.

---
Source: https://shager.ai/tr/blog/skill-weekly-distribution-routine
