sf-morning — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited sf-morning (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A structured morning check that answers four questions in order:
Designed to be run once daily. Produces a concise briefing that takes 30 seconds to read.
npm install -g @spfunctions/cli
sf loginsf feed --json --hours 12 # overnight signals
sf me portfolio --json --limit 20 # all positions with P&L
sf me theses --json --limit 10 # active thesis state
sf world --delta --json --since 12h # what changed in the world
sf alerts deliveries --json --limit 20 # alert fires overnight
sf brief --agent --json # compact agent contextIf any position needs liquidity verification, also batch:
sf inspect <ticker1> --json
sf inspect <ticker2> --json
# ... for each position#### 🚨 Kill Conditions (check first)
Has any overnight signal fundamentally invalidated a thesis?
Look at sf feed --json --hours 12 | jq .topSignal first. Then scan for:
sf me theses --json | jq '.[] | select(.heartbeat.status == "killed")')If yes: state the condition, recommend immediate action. If no: state "No kill conditions" and move on.
#### 📊 Position Health
For each position, one line:
[TICKER] [QTY]@[AVG] → [CURRENT] [P&L] | spread [X]¢ liq [HIGH/MED/LOW] | [STATUS]STATUS values:
OK — within entry hypothesis, normal spread, adequate liquidityWIDE — spread >5¢ (exit cost elevated)THIN — volume24h <100 (may struggle to exit)STALE — last orderbook update >1hNEAR_EXPIRY — closeTime within 48hKILL — kill condition trippedGroup by status. Lead with anything not OK.
#### 🎯 Actions Needed
Things requiring decision this morning:
sf intent list --json | jq '.[] | select(.status == "pending")' — any pending the autopilot proposed?NEAR_EXPIRY or KILL status that needs an exitsf discover --quality --json --limit 5 — top opportunities worth consideringFor each, one line: action + reason + command.
#### 🌐 What's New
The macro picture:
sf world --delta, did the regime label change overnight?sf world --delta)sf world --json | jq .catalysts)End with 1-3 commands the user should run RIGHT NOW:
NEXT:
1. <command> — <reason>
2. <command> — <reason>
3. <command> — <reason>Examples:
sf intent approve <id> — autopilot's macro-momentum entry from overnightsf inspect KXCPIYOY-26JUN-T4.2 — residual volume signal needs reviewsf-discipline-audit — weekly audit overdue, run today═══════════════════════════════════════
MORNING BRIEFING — <date> <time> UTC
═══════════════════════════════════════
🚨 Kill Conditions: <none | <list>>
📊 Position Health (<n> open, $<n> exposure, daily P&L $<n>):
KXFED-26JUL-T3.50 20@32¢ → 38¢ +$120 | spread 1¢ liq HIGH | OK
KXOIL-26JUN-T100 10@45¢ → 42¢ -$30 | spread 3¢ liq MED | OK
KXAZ05-26JUN 5@10¢ → 12¢ +$10 | spread 5¢ liq THIN | WIDE
🎯 Actions Needed:
- Approve intent #4521 (BUY KXNFP-26JUN @ 28¢, autopilot from overnight)
- Close KXIRAN-MAY31 (resolves in 13h, current 5¢)
🌐 What's New:
- Regime: "broad up-skew" (unchanged)
- SF Index: Disagree 51 (+4) | GeoRisk 19 (-1) | Breadth +0.47 (-0.02) | Activity 29 (+0)
- Top moves: KXCPIYOY +44¢ (4.2% tail repricing), KXFED-DOVE +6¢
- Catalysts today: 3 markets resolve in <12h
NEXT:
1. sf intent approve 4521
2. sf intent sell KXIRAN-MAY31 5 --limit 5 --note "settles in 13h"
3. sf-discipline-audit (weekly audit overdue)
═══════════════════════════════════════sf doctor --agent --json.sf setup --sync-positions then re-run morning skill.sf scan --keyword "<title>" to verify existence.sf-portfolio-review — deeper periodic review (weekly, not daily)sf-discipline-audit — adversarial position-by-position checksf-pre-trade-check — gate for new entriessf-discover — opportunity scan for the "What's New" section~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.