Skip to content
Back to skills

Sandcastles Watchlist Outliers

ASecurity

Use when the user wants only the outlier videos (1.0x+ of the channel's own 3-month average) posted in the last 7 days by the channels on the local watchlist, ranked with links; free for YouTube/TikTok, no Sandcastles.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 10, 2026
ai-agentspythonapi

Works with

  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned November 10, 2026

npx -y skills add TheVeller/claude-skills --skill sandcastles-watchlist-outliers --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sandcastles Watchlist Outliers?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sandcastles Watchlist Outliers
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/theveller-sandcastles-watchlist-outliers/badge)](https://www.skillsdirectory.com/skills/theveller-sandcastles-watchlist-outliers)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sandcastles-watchlist-outliers
description: >-
  Use when the user wants only the outlier videos (1.0x+ of the channel's own
  3-month average) posted in the last 7 days by the channels on the local
  watchlist, ranked with links; free for YouTube/TikTok, no Sandcastles.
metadata:
  origin: external-adapted
  source: "content.game (Kallaway / Content Dept.)"
  credit: "Adapted from content.game material by Kallaway / Content Dept.; rebuilt by TheVeller to run without Sandcastles."
  upstream_license: "sin dato (upstream terms not confirmed)"
---

> Source: adapted from content.game (Kallaway / Content Dept.) "Outlier Video Pulse" (`sandcastles-watchlist-outliers`), claimed 2026-10-29. Rebuilt on 2026-10-29 to run without Sandcastles: yt-dlp + optional Apify + local outlier math. Original in /workspace/exports/bot-video/work/content-game/outliervideopulse/.

# Watchlist Outliers (1x+)

Surface only the videos that are punching above their weight across the
watchlist: anything with an outlier score of 1.0x or higher, ranked by outlier
score, delivered as a clean ordered list with direct video links. This is a
quick scan, not a deep dive: never analyze hooks, formats or topics, and never
start a paid Apify run without an explicit yes.

**Outlier score** = the video's views / the mean views of the same channel's
videos posted in the 90 days before it (computed locally by
`scripts/outlier_score.py`). It is our approximation of Sandcastles' score, built
only from what we scraped. See `references/data-sources.md` for sources, prices
and limits.

## Requirements
- A watchlist file: `/workspace/exports/bot-video/watchlist.json`
  (`{"channels":[{"platform":"youtube|tiktok|instagram","handle":"@x"}]}`).
  Manage it with `scripts/watchlist.py list | add --platform P --handle @x | remove ...`.
- If the watchlist is empty or missing, say so and offer to add channels. Do not invent results.
- yt-dlp (free) for YouTube and TikTok. Instagram channels need the paid Apify
  actor `apify/instagram-reel-scraper`; skip them unless the user approved the cost.

## Two modes

### Mode A: generate the report (default)
1. Pull each watchlist channel (free platforms only):
   `python3 scripts/watchlist.py pull --limit 40`
   - It pulls ~40 recent videos per channel (not just 7 days): the outlier
     baseline needs the previous 90 days of history.
   - For Instagram entries it prints the paid Apify call and its estimated cost
     and skips them. Only run it after the user says yes (steps in
     `references/data-sources.md`), then add the normalized file to the folder.
   - If a TikTok pull fails 3 times, report that channel as "couldn't fetch"
     (paid fallback: `clockworks/tiktok-scraper`, ask first).
2. Score: `python3 scripts/outlier_score.py <pull-dir>/*.json --out <pull-dir>/scored.json`
3. Report: `python3 scripts/watchlist.py report --mode outliers --scored <pull-dir>/scored.json --days 7 --limit 10 --min-outlier 1.0`
   - Filter: posted in the last 7 days, outlier score >= 1.0, no view floor,
     no engagement floor, all platforms.
   - Ranked by outlier score (highest first), ties by views.
4. If zero videos clear 1.0x in the window, say nothing on the watchlist broke
   1x in the last 7 days and offer to widen the window. Do not invent results.

Do not download, transcribe or label videos in this skill.

### Mode B: set up the daily schedule
If the user asks to "set up", "schedule", "turn on" or "automate" this report,
create a recurring routine with the `routines` skill instead of generating it:
- Daily 07:00 America/Lima unless the user names another time.
- Delivery: chat message to the user.
- Prompt: self-contained: run Mode A of this skill (pull with limit 40, score,
  report --mode outliers --days 7 --limit 10 --min-outlier 1.0); skip Instagram
  unless a standing approval and budget exist; post the ranked list with each
  platform URL; do not analyze.
- It runs on the box; no desktop app needs to stay open.

## Output format
```
Watchlist outliers (1x+) - last 7 days, ranked by outlier score:

1. [<outlier_score>x · <view_count> views] <title> - @<handle>
   <platform_url>
2. ...
```
Rules: numbered in final ranked order (1 = highest outlier score); outlier as a
multiplier (`1.4x`); views abbreviated (`136K`); titles truncated to ~80 chars;
the bare platform URL on its own line is the deliverable. The helper adds
"(young, views still growing)" for videos under 2 days old and "(baseline: all
scraped videos)" when fewer than 3 prior videos were in the 90-day window; keep
those notes. Add one line naming any channel that was skipped (Instagram
without approval, failed TikTok pull).

## Known gaps vs. the original
- Scores are computed from our own scrape, not Sandcastles' full index.
- TikTok views from the free path are rounded (e.g. 1.3M), so close calls near 1.0x are approximate.
- Instagram has no free path.

Files in this skill

  • SKILL.md4.8 KB
  • references/data-sources.md4.9 KB
  • scripts/fetch_channel.py4.7 KB
  • scripts/normalize.py7.4 KB
  • scripts/outlier_score.py4.5 KB
  • scripts/watchlist.py7.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.