SuperAPI AI Directory

laohan-sucai

Design & creation

View repository

Updated 10-15 22:12

About this skill

B-roll asset supplier

Only finds assets for real-world scenes already determined to be BROLL_STOCK. It does not decide animation, does not disguise stock assets as fact, and does not composite video. V5 defaults to a "permanent local assets Top-K + network high-weight diversity" strategy: the local catalog handles fast reuse, while Pexels/Pixabay/Coverr still provide new candidates in parallel; only the final selections are downloaded.

Inputs and stop conditions

The formal entry points are broll_requests in 09-导演/source-manifest.json, as well as approved PROOF_PUBLIC/PROOF_USER source_entries. Each BROLL item must have beat_id, source_mode=BROLL_STOCK, visual_need, and must_not_imply; each PROOF item must have evidence.id.

🛑 STOP: when there are no broll_requests or the request is not BROLL_STOCK, do not search and do not download. Whether to generate a request is decided by ⑨'s asset strategy; as long as real B-roll can increase specificity or visual variation, a request is generated by default, and only when explicitlySKIP_WITH_REASONis the network skipped. When there is no provider key, recordprovider_errorsand continue permanent local asset recall.

Commands

# 搜索候选:默认读取项目本地catalog,同时并行检索Pexels/Pixabay/Coverr
node scripts/sucai.mjs search --source 09-导演/source-manifest.json --out 10-素材/network

# 非项目cwd时可显式指定本地库;local候选会复制到本episode后再抽帧
node scripts/sucai.mjs search --source 09-导演/source-manifest.json --out 10-素材/network --local-library "/绝对路径/你的素材库"
Only network assets used in accepted final are promoted to the permanent asset library

node scripts/material-library.mjs promote-episode episodes/

Download one candidate and generate a thumbnail for actual visual inspection

node scripts/sucai.mjs download --manifest 10-素材/network/素材清单.json --beat B01 --candidate pexels:123

Actually view the thumbnail or contact sheet first, then record the verdict

node scripts/sucai.mjs verify --manifest 10-素材/network/素材清单.json --beat B01 --candidate pexels:123 --verdict pass --reason "主体、构图和事实边界均匹配"

View the current manifest

node scripts/sucai.mjs report --manifest 10-素材/network/素材清单.json

PROOF only materializes approved evidence; after explicit visual confirmation, copy it to the current issue and register it

node scripts/register-proof-asset.mjs episodes/ B03 --visually-verified


环境变量和官方申请入口见 references/providers.md。不要把 key 写入 SKILL.md、JSON、episode 或 Git。

## 工作流

1. 读取 broll_requests 的 query_terms;缺 query_terms 时只用 visual_need,记录搜索理由。
2. 默认读取项目`本地素材库/catalog.json`,只返回相关度最高的本地视频候选;catalog不存在时才回退到文件名扫描。不得把整个素材库塞进导演上下文。
3. 无论本地是否命中,Pexels、Pixabay、Coverr默认仍并行提供网络候选,以增加画面多样性。只有本期明确`--providers local`时才只查本地;Mixkit不做自动抓取。
4. 记录每个provider的status、candidate_count、elapsed_ms、rate_limits,并分别记录本地/网络候选数;单个provider的无key、限流或失败不阻断其他provider。
5. 写入`10-素材/network/素材清单.json`、`素材清单.md`、`_credits.md`;清单绑定当前source manifest,候选初始状态都是candidate_unverified。`material-library.mjs promote-episode`仍兼容历史episode的`10-素材/素材清单.json`,新episode只使用network分区。
6. 只下载选择的candidate并使用FFmpeg抽帧;local候选先复制到本episode。
7. 实际检查人物、动作、画幅、水印、错误文字、字幕安全区和must_not_imply。
8. 只有verify pass才标为visually_verified;selected candidate必须位于本期`10-素材/network/broll-assets/`并绑定文件/缩略图SHA,⑪只读取这种资产。
9. Jeffrey接受final后,只把实际使用且已核验的网络素材通过`material-library.mjs promote-episode`晋升永久库;未采用的网络候选不入库。
10. PROOF不进入库存B-roll搜索池。只把⑨已批准且绑定⑤`SUPPORTED claim_id`的同源evidence复制到`10-素材/network/proof-assets/`,不重做事实判断。

## 失败处理

| 情况 | 动作 |
|---|---|
| 某 provider 无 key 或 API 失败 | 写 provider_errors,继续其他 provider |
| 本地素材库不存在或不可读 | 标 local provider error,继续远程 provider |
| 全部无候选 | 标 no_result,返回⑨重新判断,不凑素材 |
| 全部候选视觉不匹配 | 标 no_approved_candidate,修改检索词或手动补充,不得进入⑪ |
| 下载失败 | 标 download_failed,不改变其他候选 |
| 视觉不匹配 | verify reject,不能因文本相关就通过 |

## 禁止事项

- 不对整篇口播逐句配图;
- 不自动把 no_result 变成动画;
- 不把候选文本分数当视觉通过;
- 不把本地文件名命中当视觉通过;
- 不使用 Mixkit 爬虫或把库存素材当用户 proof;
- 不在本 skill 中裁切、烧字幕、渲染或发布。