Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions socket.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
version: 2

# ─────────────────────────────────────────────────────────────────────────────
# Socket security policy — hyperframes-monorepo
#
# Why this file exists
# --------------------
# The skills registry (skills.sh) shows a Socket / Snyk / Gen "risk" badge at
# `npx skills add heygen-com/hyperframes` time. Socket scores code against an
# "untrusted npm dependency" threat model. Under that model the things a video
# tool does by design — spawn the renderer, lazy-load optional peers, embed
# fonts, ship a graded test corpus — look like supply-chain risk, so two skills
# get false-positive **Critical** badges:
#
# • remotion-to-hyperframes → Critical (1 alert)
# • embedded-captions → Critical (2 alerts)
#
# Every alert was reviewed by hand (no exfiltration, no install hooks, no
# obfuscation, all network destinations first-party). The Gen Agent Trust Hub
# scanner — the only one built for agent skills — already rates both **safe**.
# This file accepts the specific, reviewed false positives and KEEPS every
# genuinely-suspicious alert enabled.
#
# Investigation note: <attach internal report link> · 2026-06-24
# NOTE: exact firing alert slugs should be confirmed in the Socket dashboard;
# the rules below target the high-probability causes found in review and
# are scoped as narrowly as possible.
# ─────────────────────────────────────────────────────────────────────────────

projectIgnorePaths:
# remotion-to-hyperframes ships a tiered TEST CORPUS — graded eval fixtures
# the skill itself tells you to run (SKILL.md §"tiered test corpus"). Each
# tier carries its own `remotion-src/package.json` that pins `remotion` /
# `@remotion/cli` only to render a baseline .mp4. Those are fixture manifests,
# NOT skill runtime dependencies — but Socket scans every package.json it
# finds and flags the remotion dependency, which is the "Critical (1)" badge.
# The fixtures must stay (the eval depends on them), so exclude the test
# trees from scanning instead of deleting them.
- "skills/remotion-to-hyperframes/assets/test-corpus/**"
- "skills/remotion-to-hyperframes/scripts/tests/**"

issueRules:
# ── Accepted false positives — intrinsic to a render / caption toolchain ──

# embedded-captions lazy-loads OPTIONAL peer deps (puppeteer, sharp) through
# `require(resolvedPath)` so the skill degrades gracefully when they are not
# installed (e.g. check-overflow.cjs, preview-frames.cjs, safe-zones.cjs).
# Socket reads `require(<variable>)` as dynamicRequire. Safe, deliberate.
dynamicRequire: false

# embedded-captions/modes/standard/fonts/fonts.css embeds web fonts as base64
# data URIs (~1.2 MB, one large file). High-entropy, but it is font data —
# not minified/obfuscated executable code.
minifiedFile: false

# Skills spawn ffmpeg and the `hyperframes` CLI to render, matte and composite
# video, and write composition HTML + temp frames to the project directory.
# This is the product's core function, not a supply-chain risk.
shellAccess: false
filesystemAccess: false

# ── Kept ENABLED — a real regression here SHOULD still raise an alert ──
# (defaults are on; listed explicitly so reviewers can see we narrowed false
# positives rather than blanket-silencing Socket.)
malware: true
installScripts: true
usesEval: true
gitDependency: true
httpDependency: true
shellScriptOverride: true
troll: true
Loading