| name | compose-weekly-report |
| description | Orchestrator. Runs all 6 fetchers and 3 analyzers in dependency order, assembles the full markdown report, creates a Google Doc in a configured Drive folder, persists everything to the snapshot store. Returns the doc URL. |
compose-weekly-report
The top-level skill the Routine invokes each Sunday. Coordinates fetchers and analyzers, builds the report, ships to Google Drive.
How to invoke
python .claude/skills/compose-weekly-report/scripts/compose.py [--week 2026-W18]
Flow
- Determine current ISO week (or use
--week override).
- Run fetchers in dependency order:
fetch-post-manifest (blocking — everything else needs posts.json)
fetch-search-console, fetch-fathom, fetch-kit, fetch-pagespeed in parallel
fetch-dataforseo (depends on GSC for discovered keywords)
- Run analyzers in parallel:
analyze-seo-health, analyze-content-performance, analyze-keyword-opportunities
- Assemble the markdown report from analyzer outputs (sections in
plan.md §3.10).
- Create a Google Doc in
GOOGLE_DRIVE_FOLDER_ID with the report content. Save URL to reports/{week}/doc-url.txt.
- Persist
report.md and insights.json to the snapshot store.
Failure handling
Each fetcher and analyzer is allowed to fail independently. The composer catches exceptions, logs them, and continues. Failed sections are marked "data unavailable this week" in the report. The Routine should always send something rather than crashing silently.
Inputs
GOOGLE_DRIVE_FOLDER_ID
GOOGLE_DRIVE_SERVICE_ACCOUNT_JSON — service account with Drive API access; folder must be shared with the service account email
- All fetcher / analyzer env vars (orchestrator passes through)
Output
reports/{week}/report.md
reports/{week}/insights.json (combined output of all analyzers)
reports/{week}/doc-url.txt
- A new Google Doc in the configured folder, returned by URL
Notes
- Report markdown sections are templated, but analyzer prose (rationale, recommended actions) is generated by Claude in the upstream analyzer skills, not here.
- Doc title format:
Weekly Site Report — Week of {Mon DD, YYYY}.