WHYSTROHM
SystemResultsPricingBlogAboutFree Content Scan →
SystemResultsPricingBlogAboutFree Content Scan →
Home/Blog/Ritual: A Claude Code Skill That Reads Your Shell History and Drafts Your First Scheduled Trigger.
Operations

Ritual: A Claude Code Skill That Reads Your Shell History and Drafts Your First Scheduled Trigger.

Yuri|April 17, 2026|6 min read

In this post

  • Part 1: The Scan
  • Part 2: The Three Execution Contexts
  • Part 3: The Seven Archetypes
  • Part 4: ritual-voice (The Bundled Skill)
  • Part 5: The Four Clicks to Ship a Trigger
  • What Ritual Will Not Do
  • Install and Run
  • What This Is Part Of

Ritual — Find where you're wasting time. Get a Claude Code routine that fixes it.

Claude Code scheduled triggers launched a few weeks ago. They are exactly what they sound like: remote Claude Code sessions that run on a cron schedule, in Anthropic's cloud, without you sitting at the keyboard. The feature is obviously powerful. The problem is that most people installing Claude Code for the first time have no clue what their first trigger should be.

I ran into this myself. I stared at the /schedule command for 20 minutes. I run content infrastructure across 11 founder-led brands, so I knew I had repeated work. The trouble is that the work you actually repeat versus the work that just feels busy is hard to see from inside the work.

So I wrote a scan. Then a skill. Then a playbook of seven routine archetypes. Then I open-sourced all of it under MIT. It's called Ritual. This post is the full breakdown.

Repo: github.com/whystrohm/ritual

Part 1: The Scan

Ritual scan demo — paste the bootstrap prompt, get ranked recommendations and a drafted routine

The scan is not a product. It's a paste-in Claude Code prompt. You open Claude Code at your home directory, paste the prompt from docs/bootstrap.md, and five to ten minutes later you have a file at ~/ritual-patterns.json with your top 5 automation candidates ranked.

Here's what the scan actually reads:

  • Shell history, both sources. On modern macOS, default zsh writes per-session history to ~/.zsh_sessions/*.history, not to ~/.zsh_history. Most scans miss this. Mine reads both. On my machine that was the difference between 652 lines and 28,680 lines of real command history.
  • Git repos under ~/. Inventoried with last-commit dates, shared folder shapes, and schema overlap across brand-config.json or similar files. Found 21 on my machine.
  • Claude Code memory files. ~/CLAUDE.md, ~/.claude/memory/, and any repo-level CLAUDE.md. Stated intent beats observed behavior. If your memory says "always sync Notion after IRS deploys," that's a real routine candidate even if it hasn't happened often enough to show up in shell history.
  • Existing automations. ~/Library/LaunchAgents/, crontab -l, and .github/workflows/*.yml in every repo. The scan lists what already runs and excludes those patterns from recommendations. You don't want "schedule a YouTube audit" to show up when com.whystrohm.yt-audit already fires every Monday at 9am.

Output: a JSON file with each recommendation ranked by frequency times time cost times feasibility, classified by execution context, and the top one drafted as a full paste-ready trigger prompt with your real repo names in it.

Part 2: The Three Execution Contexts

This is the part that matters for honesty. Not every automation Ritual recommends belongs in a Claude Code scheduled trigger.

Context When it fits Where it lives
Claude Code trigger Work on git-hosted repos, runs on a cadence, uses MCP connectors /schedule or claude.ai/code/scheduled
GitHub Actions Event-driven (on PR open, on push to main, on release) .github/workflows/*.yml inside the repo
Local cron / launchd Needs local filesystem, local scripts, or local tools ~/Library/LaunchAgents/ or crontab

The scan tags each recommendation. If your top pattern is "sweep every content repo for stale copy at 6am Monday" — that's a Claude Code trigger, drafted directly. If it's "block PRs that include AI-slop language" — that's GitHub Actions, and the scan points you at a workflow example. If it's "aggregate today's Remotion renders into an iMessage digest" — that's launchd, and the scan tells you the trigger feature can't do it and hands off to the right tool.

This sounds obvious. It isn't. Most "routine templates" on the internet right now assume every automation fits in a trigger, and they force it. Ritual refuses.

Part 3: The Seven Archetypes

After running the scan against several machines (mine plus a handful of friends testing it), seven recurring shapes emerged. Five are Claude Code triggers. Two belong elsewhere.

  1. Voice sweep (trigger). Runs ritual-voice across every brand repo, opens draft PRs with fixes. Monday 6am. Most common first recommendation for content operators.
  2. Fact freshness digest (trigger). Walks your config's provenFacts array, flags any fact older than maxAgeDays. Weekly. Your reminder to re-verify case-study numbers before they quietly go stale.
  3. Dependency and security digest (trigger). Clones each repo, reads lockfiles, opens grouped patch bumps. Flags majors without applying. Skip if Dependabot already covers it.
  4. Content calendar sync (trigger with Notion or Drive MCP). Pulls the next 7 days from your calendar, checks drafts and assets exist in the attached repo, flags blockers. Sunday evening.
  5. Inbox triage (trigger with Gmail MCP). Reads unread threads from the last 24 hours, classifies action-required vs informational vs discardable, emits a digest. Weekdays 7am.
  6. Deploy verification (GitHub Actions, not a trigger). Fires on push to main. Pre-deploy voice lint + llms.txt check + Lighthouse.
  7. Local filesystem digest (launchd, not a trigger). Needs your Mac's filesystem. Commit to local automation and leave it there.

The archetypes are in docs/first-routines.md with the full prompt, cron expression, repos to attach, and MCP connectors needed. Paste-ready. If your scan surfaces a pattern that doesn't match any of these, open an issue with the JSON and I'll add an archetype.

Part 4: ritual-voice (The Bundled Skill)

Ritual voice demo — ten violations caught, suggested rewrite pulled from provenFacts, every verified number marked

The bundled skill powers Archetype 1 (voice sweep). Six priorities in a deliberate order:

  1. Stale stats — numeric claims in content that don't match provenFacts, or facts not re-verified in 30 days.
  2. Missing specificity — "we help founders grow" class of statement. Claims without numbers, proof, or named subjects.
  3. AI-slop markers — em-dash density, "it's not X — it's Y" construction, "delve," "tapestry," "testament to."
  4. Hype words — comprehensive, seamless, revolutionary, plus whatever you add per brand.
  5. Name and attribution mismatches — the nickname in one paragraph, legal name in another. Cross-file checks.
  6. Generic corporate voice — passive headlines, hedging claims, vague benefits.

Three modes: flag (report only), suggest (propose rewrites), fix (apply directly). Scheduled runs default to suggest. Auto-fix never runs unsupervised.

The priority order is the interesting part. Most voice linters lead with style (hype words, passive voice). This one leads with provenance: does the claim have a receipt? A stale number is misleading. A hype word is ugly. Misleading is worse than ugly.

The skill itself has zero brand-specific logic. Everything lives in a ritual.config.json at each brand's repo root. Your config is yours. Mine looks nothing like yours. The skill just reads whatever rules you define.

Part 5: The Four Clicks to Ship a Trigger

When the scan hands you a drafted routine prompt, here's what happens next. No dead zone. Four clicks.

  1. Type /schedule in a new Claude Code session (or visit claude.ai/code/scheduled and click "New trigger").
  2. Paste the drafted prompt. Do not edit it down. The remote agent starts with zero context, so the whole prompt is load-bearing.
  3. Attach repos and MCP connectors. The draft lists which ones — real GitHub repos by name, real connectors from your claude.ai/settings/connectors. If a connector is missing, connect it first.
  4. Set the UTC cron, save, then click "Run now" immediately. Do not wait for the schedule. Fire it once manually, review the output, tune if needed. Only trust the cron after a clean manual run.

Full mechanics in docs/how-routines-work.md — what "remote agent" means, how MCP connectors attach, what outputs look like, usage limits per plan, troubleshooting.

What Ritual Will Not Do

Every content tool drifts toward "trust me" marketing. I committed to the opposite. docs/limitations.md is explicit about what Ritual refuses to do:

  • It will not write content. It's an audit skill. Rewrites come from provenFacts, not imagination.
  • It will not replace an editor. It catches mechanical drift, not strategic problems.
  • It will not verify facts against the live internet. The config is the source of truth. Wrong config, wrong audit.
  • It will not auto-fix in a scheduled run. Fix mode exists for trusted interactive use. Scheduled triggers stay in suggest mode.
  • It will not work well with an empty config. New configs start with provenFacts: []. In that state, only P3 and P4 fire meaningfully.

The clearer the scope, the more useful the tool. A three-month-old config with forty proven facts catches more than a week-old config with five. Ritual becomes more valuable as your config matures.

Install and Run

Download the .skill file directly:

curl -L https://github.com/whystrohm/ritual/releases/latest/download/ritual-voice.skill -o ritual-voice.skill

# Claude Code → Settings → Skills → Install Skill → select the file

Or run the bootstrap scan first to get your personalized routine recommendations:

cd ~
# Open Claude Code, then paste the prompt from:
# https://github.com/whystrohm/ritual/blob/main/docs/bootstrap.md

Everything is MIT. The repo is github.com/whystrohm/ritual. Issues welcome. Example configs for niches beyond mine are the single most valuable contribution if you want to help.

What This Is Part Of

Ritual is the fifth Claude Code skill I've shipped. The first four are focused on brand voice:

  • Digital Twin — reverse-engineer how you think and talk, build an AI System Prompt of yourself.
  • Content Audit — score your content against a 5-layer framework, get a live rewrite.
  • Voice Extract — extract a structured voice profile from any URL.
  • Voice Scorer — measure voice drift between your website and social content.

Ritual sits above them. It's the orchestration layer that decides which of those skills (or any other work) belongs on a schedule and drafts the trigger to run them.

If you want any of this running on your content without maintaining it yourself, that's the day job. Score your content for free or see what a managed infrastructure install looks like.

Share
claude codeclaude code routinesscheduled triggersautomationritualclaude skillai agentsworkflow automationcontent infrastructure

Free in 10 seconds

Find out what's costing you time, trust, and conversions.

The WhyStrohm Content Audit scores your published content against 5 layers of infrastructure-grade standards. Vocabulary. Structure. Proof density. Voice consistency. Buyer alignment. You get a number, the exact quotes that earned it, and a rewrite of your weakest piece — live.

Score Your Content Free →No email. No account. Just your score.
Want the full system built for you?

Or reach out directly

Tell me about your brand.

Name, email, and one line. I'll get back to you within 24 hours.

Related Posts

Operations10 min read

One Engine, Eleven Brands: How Content Infrastructure Scales Without Breaking

Brand Voice7 min read

Your AI Doesn't Sound Like You. Here's How to Fix It. (V2)

WHYSTROHM
Built in 30 days. Runs without you.
SystemResultsPricingScanAboutBlog
Instagram ↗YouTube ↗GitHub ↗PrivacyTerms
© 2026 WHYSTROHM