🤖

competitor-digest

PLANNED · NOT LAUNCHED
Model
claude-opus-4-8
Runs
Mon 7:00 PT
Agent
at launch
Deployment
after first pass

Every Monday I spend ~3 hours pulling competitor pricing and feature changes into a digest for the team.

System schema

Trigger

🗓️

Deployment

cron · 0 7 * * 1
schedule · expression / timezone
Every Monday · 7:00 AM America/Los_Angeles
Status
created after the first run passes
initial_events

Each firing replays the 🎯 outcome (right) into a fresh ▶️ session in the sandbox — nobody at a keyboard.

▶️ Also runs on demand any time — LAUNCH.md fires the same agent with the same outcome.

Worker

📦 environment · type: cloud · networking: unrestricted · packages: none
🤖

Agent — competitor-digest

claude-opus-4-8 · v1 at launch
system · the job

Researches the 5 named competitors' public sites, pricing pages, and changelogs; writes a weekly digest to /mnt/session/outputs/digest.md.

🛠️ Tools

tools[] · agent_toolset_20260401
web_searchweb_fetchbashreadwriteeditglobgrep

🧠 Memory store

resources[] · memory_store read_write competitor-history — last week's snapshot per competitor, so runs report changes, not re-descriptions.

🔌 Connectors & 🔐 vaults

mcp_servers[] + vault_ids[] — empty in v0, public web only. Notion + Slack sit in the version rail below.

📄 Skills

skills[] — empty; plain markdown output.

Output & grading

📤

Deliverable

files api

digest.md — the weekly competitor digest, fetched from the run's outputs.

Guardrails in effect
max_iterations: 3drafts only — no write connectors wired
🎯

Outcome

user.define_outcome · max_iterations 3

Your definition of done — rubric.content, graded by the platform every run.

  1. digest.md exists and covers all 5 competitors listed in the kickoff
  2. Every pricing or feature change has a source link
  3. Each competitor section ends with a one-line "so what for us"
  4. Anything unchanged since last week sits in one "no movement" line
  5. No claim without a source or an explicit "unverified" tag
📜

Sessions · run log

no runs yet
RunSessionRubricVerdictNote
no runs yetThe first launch fills this in.
🧪

Evals

3 cases · regression
CaseKnown-good answerLast verdict
week-of-may-25Lamis's hand-written digestnot run yet
week-of-jun-01Hand-written digestnot run yet
week-of-jun-08Hand-written digestnot run yet

Case 1 is the v0 input; the rest are held back and re-run before promoting any new agent version.

🧭

Next directions

the version rail
v1
Agent posts the digest to Slack itself
Write-action — kept human-in-the-loop for v0
Slack MCP server + 🔐 vault credential, toolset gated always_ask
v2
Pull the internal strategy doc into context
Needs a Notion credential not on hand in the session
Notion MCP + vault mcp_oauth; reference the doc in the kickoff
v3
Lock networking to the competitor sites only
Hardening — unrestricted is fine while read-only
Environment networking: limited + allowed_hosts
always
Re-run the eval cases before promoting a new version
Process habit, not a build task
evals/run-evals.sh against the new version; promote only when verdicts hold