Skip to content

Add San Diego Surf Watch example#15

Merged
ljagiello merged 5 commits into
mainfrom
add-san-diego-surf-watch
May 15, 2026
Merged

Add San Diego Surf Watch example#15
ljagiello merged 5 commits into
mainfrom
add-san-diego-surf-watch

Conversation

@yenatempest

Copy link
Copy Markdown
Contributor

What this adds

A new san-diego-surf-watch workspace example that monitors surf conditions at 9 San Diego area beaches every 30 minutes and saves a surf alert to memory when conditions are good.

Agents:

  • surf-checker — atlas web agent, checks Surfline/Magic Seaweed and similar for current conditions
  • surf-evaluator — LLM agent (Claude Sonnet), applies good/poor criteria and writes exactly one memory entry per run

Good surf criteria: 3ft+ wave height, 8s+ period, offshore or light wind (<10 mph), NW/W/SW swell direction.

Trigger: cron every 30 minutes.

Files changed

  • san-diego-surf-watch/workspace.yml
  • san-diego-surf-watch/workspace.lock
  • san-diego-surf-watch/README.md
  • examples.json — added entry for Discover Spaces

Notes

  • No credentials required (public surf forecast sites only)
  • Placeholder assets/san-diego-surf-watch/ folder — screenshots to be added

Monitors surf conditions at 9 San Diego area beaches every 30 minutes.
Uses a web agent to check Surfline/Magic Seaweed, then an LLM evaluator
to apply good-surf criteria (3ft+, 8s+ period, offshore/light wind, NW/W/SW
swell) and write a SURF ALERT to memory when conditions qualify.
@yenatempest yenatempest requested a review from a team as a code owner May 15, 2026 18:57
yenatempest and others added 4 commits May 15, 2026 12:17
Replaces the hand-rolled Python validator with a Deno script that
delegates to friday-studio's WorkspaceConfigSchema + validateWorkspace().
The Python validator hardcoded an `fsm` requirement and rejected the
valid `execution` alternative, plus missed schema coverage for signal
providers, agent types, memory enums, etc. Pointing at the canonical
schema means examples are validated against exactly what the runtime
accepts, and stays in sync as the schema evolves.

CI clones friday-platform/friday-studio at tag 0.1.8 into .friday-studio
and runs the validator with --config pointing at its deno.json so
@atlas/* workspace imports resolve.
Validator (scripts/validate_examples.ts):
- Sentinel-based example discovery: a folder is an example iff it
  contains workspace.yml. Drops the SKIP_DIRS denylist which had
  drifted (just caused docs/ to be misclassified) and which was
  duplicated with the folder-names workflow job.
- Restore kebab-case job ID enforcement. The canonical schema accepts
  any MCP tool name; examples should be uniform.
- Treat warnings as errors. Examples should be exemplary; a dead
  signal or orphan agent is a defect users would inherit. Verified
  all 12 existing examples are warning-clean.

CI (.github/workflows/validate.yml):
- Tighten Deno permissions from -A to --allow-read --allow-env
  --allow-sys. Validator only walks the filesystem and reads YAML;
  cron-parser pulls @vercel/oidc transitively, which needs --allow-sys.

san-diego-surf-watch example (workspace.yml):
- Set onMissed: skip explicitly on the schedule signal. Documents
  the option and avoids inheriting whatever the platform default is.
- Close threshold gaps in the evaluator prompt. GOOD was ≥3ft/≥8s,
  POOR was <2ft/<7s — the 2-3ft and 7-8s middle bands forced the
  model to invent the boundary. Now: GOOD = all conditions met,
  POOR = anything else.
ljagiello added a commit that referenced this pull request May 15, 2026
Captures the multi-agent review of PR #15: validator overhaul to
delegate against @atlas/config and the surf-watch example. Records
verdict (Needs Work → addressed in ce1cc46), the eight Important
findings, and four items left as Needs Decision.
@ljagiello ljagiello force-pushed the add-san-diego-surf-watch branch from 1c149e7 to ce1cc46 Compare May 15, 2026 20:05
@ljagiello ljagiello merged commit f48e7c4 into main May 15, 2026
11 checks passed
@ljagiello ljagiello deleted the add-san-diego-surf-watch branch May 15, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants