Files
market/skills/marketingskills/entry.json
xyx 27589d013d fix(skills): 修复 14 个 pointer 条目安装失败 + 7 个合集声明 children (#81)
## 背景 / Background

市场里 25 个 pointer 条目中有 **14 个点安装必然失败**,客户端返回 502「源仓库中未找到 SKILL.md(pointer
指向有误)」。

根因是 `entry.json` 的 `source` 指错:客户端按 `source.path` 定位内容(缺省则取仓库根),而这些条目的
`path` 缺失或 URL 指向了 HTML 页面,`contentDir/SKILL.md` 自然不存在。

Of the 25 pointer entries, **14 always failed to install** with a 502.
The `source` pointers were wrong: `path` was missing (so the client
looked at the repo root) or `repoUrl` pointed at an HTML page instead of
the content.

## 改动 / Changes

### 1. 补 `source.path`(5 个)

| 条目 | path | 上游 SKILL.md 实际位置 |
|---|---|---|
| `impeccable` | `plugin/skills/impeccable` | 根目录没有;`plugin/` 与
`.claude/` 两份内容逐字节一致,取中立的分发目录 |
| `ai-news-radar` | `skills/ai-news-radar` | 仓库另有 `skills/radar`,取与条目 id
对应的 |
| `taste-skill` | `skills/taste-skill` | 同名子目录 |
| `wechatpay-skills` | `wechatpay-payment-integration` | 仓库另有
`wechatpay-product-coupon` 未覆盖,见下方遗留项 |
| `luckin-my-coffee` | `my-coffee` | zip 内有一层顶层目录 |

### 2. 修正 web 类条目的源地址(2 个)

`amap-jsapi-skill` / `dingtalk-api` 原先指向 ClawHub 的**网页**(`content-type:
text/html`),客户端只在 markdown 时才写成 `SKILL.md`,HTML 会落成 `index.html`,校验必失败。

- `amap-jsapi-skill` → 改用 ClawHub 文件 API(返回 `text/markdown`)。该技能在
ClawHub 的发布包 `version.files` 只有一个 `SKILL.md`,单文件抓取正是对的形态。
- `dingtalk-api` → ClawHub 包有 38 个文件(`scripts/*.ts` 等),单文件抓不全,改指内容完整的
GitHub 上游 `ogenes/dingtalk-api` 并锁 ref。

### 3. 合集条目声明 `children`(7 个,147 个子技能)

这 7 个的上游是「一个仓库装着 N 个平级技能」,没有单一 SKILL.md 可指,靠改 `path`
修不了。配合客户端新增的合集能力(desirecore 主仓库 PR),`entry.json`
现在可声明子技能清单,市场仍是一个条目,安装时由用户勾选装哪几个。

| 条目 | 子技能数 |
|---|---|
| `marketingskills` | 49 |
| `mattpocock-skills` | 35 |
| `larksuite-cli` | 27 |
| `baoyu-skills` | 21 |
| `wecom-cli` | 7 |
| `khazix-skills` | 5 |
| `netease-skills` | 3 |

新增 `scripts/gen-collection-children.py`:按 `entry.json` 锁定的 ref
克隆上游、扫描子技能、读 frontmatter 生成 `children`。约定「仓库有顶层 `skills/` 就只扫它」——否则会收录
`larksuite/cli` 的 linter 测试夹具
`internal/qualitygate/skillscan/testdata/skills/lark-demo`。

### 4. `netease-skills` 分支修正

`repoBranch` 写的是 `main`,上游默认分支是 `master`,此前 clone 必然失败(`Could not find
main`)。

### 5. 版本号

`manifest.json` `1.2.24` → `1.2.25`。

## 验证 / Verification

- `uv run scripts/i18n/validate-i18n.py` — OK
- `uv run scripts/i18n/validate-i18n.py --online` — OK
- **真实运行的 agent-service 上逐个安装**(独立 home + standalone 服务,非模拟):18 个非合集
pointer 条目 **18/18 成功**并完整落盘;7 个合集条目 **7/7 成功**,并验证了部分安装、追加、取消勾选卸载、装到
Agent 私有目录。

## 遗留项 / Known gaps

- `wechatpay-skills` 只覆盖了 `wechatpay-payment-integration`,同仓库的
`wechatpay-product-coupon` 未上架。条目名是复数,后续可拆成两条或改成合集。
- `children[].i18n` 目前只有 `shortDesc`(取自上游
description),**没有中文名**——子技能名沿用上游 id(如 `lark-approval`),以保证与上游文档、Agent
加载路径一致。宝玉 / Matt Pocock / Marketing 三个合集的描述本身就是英文。如需中文化,可接
`i18n-translate.yml` 覆盖 `children` 字段。
- 在线校验目前只查 URL 可达性,**查不出 `path` 指向的目录里有没有 SKILL.md**——这 14
个坏条目当初就是这么一路绿灯合进主干的。建议后续给 `--online` 加这条断言。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: xieyuanxiang <xieyuanxiang123@gmail.com>
2026-08-09 16:25:20 +08:00

629 lines
23 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"id": "marketingskills",
"name": "Marketing Skills",
"category": "business",
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M4 19V5\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\"/><path d=\"M4 19h16\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\"/><path d=\"m6.5 14 3.5-4 3 2.5L20 6\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20 10V6h-4\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>",
"tags": [
"marketing",
"cro",
"copywriting",
"seo",
"growth"
],
"i18n": {
"zh-CN": {
"name": "Marketing Skills",
"shortDesc": "面向技术型营销人与创始人的 AI Agent 技能集涵盖转化率优化、文案、SEO、数据分析与增长工程适配 Claude Code、Cursor 等"
},
"en-US": {
"name": "Marketing Skills",
"shortDesc": "Marketing skills for technical marketers and founders — CRO, copywriting, SEO, analytics and growth engineering, for Claude Code and Cursor"
}
},
"maintainer": {
"name": "Corey Haines",
"verified": false,
"account": "coreyhaines31",
"url": "https://github.com/coreyhaines31/marketingskills"
},
"stewardship": "community",
"license": "MIT",
"redistribution": "allowed",
"source": {
"kind": "git",
"repoUrl": "https://github.com/coreyhaines31/marketingskills.git",
"repoBranch": "main",
"ref": "7868cb9251fad80a73d26e488a5ad5f6c4a9f335"
},
"children": [
{
"id": "ab-testing",
"path": "skills/ab-testing",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program."
},
"en-US": {
"shortDesc": "When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program."
}
}
},
{
"id": "ad-creative",
"path": "skills/ad-creative",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platfor…"
},
"en-US": {
"shortDesc": "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platfor…"
}
}
},
{
"id": "ads",
"path": "skills/ads",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms."
},
"en-US": {
"shortDesc": "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms."
}
}
},
{
"id": "ai-seo",
"path": "skills/ai-seo",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers."
},
"en-US": {
"shortDesc": "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers."
}
}
},
{
"id": "analytics",
"path": "skills/analytics",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to set up, improve, or audit analytics tracking and measurement."
},
"en-US": {
"shortDesc": "When the user wants to set up, improve, or audit analytics tracking and measurement."
}
}
},
{
"id": "aso",
"path": "skills/aso",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to audit or optimize an App Store or Google Play listing."
},
"en-US": {
"shortDesc": "When the user wants to audit or optimize an App Store or Google Play listing."
}
}
},
{
"id": "attribution",
"path": "skills/attribution",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to figure out which marketing actually drives conversions and revenue, choose or interpret an attribution model, or reconcile conflicting nu…"
},
"en-US": {
"shortDesc": "When the user wants to figure out which marketing actually drives conversions and revenue, choose or interpret an attribution model, or reconcile conflicting nu…"
}
}
},
{
"id": "churn-prevention",
"path": "skills/churn-prevention",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies."
},
"en-US": {
"shortDesc": "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies."
}
}
},
{
"id": "co-marketing",
"path": "skills/co-marketing",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities."
},
"en-US": {
"shortDesc": "When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities."
}
}
},
{
"id": "cold-email",
"path": "skills/cold-email",
"i18n": {
"zh-CN": {
"shortDesc": "Write B2B cold emails and follow-up sequences that get replies."
},
"en-US": {
"shortDesc": "Write B2B cold emails and follow-up sequences that get replies."
}
}
},
{
"id": "community-marketing",
"path": "skills/community-marketing",
"i18n": {
"zh-CN": {
"shortDesc": "Build and leverage online communities to drive product growth and brand loyalty."
},
"en-US": {
"shortDesc": "Build and leverage online communities to drive product growth and brand loyalty."
}
}
},
{
"id": "competitor-profiling",
"path": "skills/competitor-profiling",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to research, profile, or analyze competitors from their URLs."
},
"en-US": {
"shortDesc": "When the user wants to research, profile, or analyze competitors from their URLs."
}
}
},
{
"id": "competitors",
"path": "skills/competitors",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement."
},
"en-US": {
"shortDesc": "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement."
}
}
},
{
"id": "content-strategy",
"path": "skills/content-strategy",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover."
},
"en-US": {
"shortDesc": "When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover."
}
}
},
{
"id": "copy-editing",
"path": "skills/copy-editing",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content."
},
"en-US": {
"shortDesc": "When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content."
}
}
},
{
"id": "copywriting",
"path": "skills/copywriting",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or…"
},
"en-US": {
"shortDesc": "When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or…"
}
}
},
{
"id": "cro",
"path": "skills/cro",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to optimize, improve, or increase conversions on any marketing page or form — including homepage, landing pages, pricing pages, feature page…"
},
"en-US": {
"shortDesc": "When the user wants to optimize, improve, or increase conversions on any marketing page or form — including homepage, landing pages, pricing pages, feature page…"
}
}
},
{
"id": "customer-research",
"path": "skills/customer-research",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to conduct, analyze, or synthesize customer research."
},
"en-US": {
"shortDesc": "When the user wants to conduct, analyze, or synthesize customer research."
}
}
},
{
"id": "directory-submissions",
"path": "skills/directory-submissions",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery."
},
"en-US": {
"shortDesc": "When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery."
}
}
},
{
"id": "emails",
"path": "skills/emails",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program."
},
"en-US": {
"shortDesc": "When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program."
}
}
},
{
"id": "free-tools",
"path": "skills/free-tools",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness."
},
"en-US": {
"shortDesc": "When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness."
}
}
},
{
"id": "image",
"path": "skills/image",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visual…"
},
"en-US": {
"shortDesc": "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visual…"
}
}
},
{
"id": "influencer-marketing",
"path": "skills/influencer-marketing",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to run influencer, creator, or ambassador partnerships to promote their product — finding and vetting partners, structuring deals, briefing…"
},
"en-US": {
"shortDesc": "When the user wants to run influencer, creator, or ambassador partnerships to promote their product — finding and vetting partners, structuring deals, briefing…"
}
}
},
{
"id": "launch",
"path": "skills/launch",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to plan a product launch, feature announcement, or release strategy."
},
"en-US": {
"shortDesc": "When the user wants to plan a product launch, feature announcement, or release strategy."
}
}
},
{
"id": "lead-magnets",
"path": "skills/lead-magnets",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation."
},
"en-US": {
"shortDesc": "When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation."
}
}
},
{
"id": "marketing-council",
"path": "skills/marketing-council",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants multiple expert perspectives on a marketing question — a simulated board of advisors staffed by legendary marketers (Seth Godin, David Ogilv…"
},
"en-US": {
"shortDesc": "When the user wants multiple expert perspectives on a marketing question — a simulated board of advisors staffed by legendary marketers (Seth Godin, David Ogilv…"
}
}
},
{
"id": "marketing-ideas",
"path": "skills/marketing-ideas",
"i18n": {
"zh-CN": {
"shortDesc": "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product."
},
"en-US": {
"shortDesc": "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product."
}
}
},
{
"id": "marketing-loops",
"path": "skills/marketing-loops",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to set up a recurring, self-running marketing workflow — a repeatable loop an AI agent runs on a cadence (weekly, daily, on a trigger) rathe…"
},
"en-US": {
"shortDesc": "When the user wants to set up a recurring, self-running marketing workflow — a repeatable loop an AI agent runs on a cadence (weekly, daily, on a trigger) rathe…"
}
}
},
{
"id": "marketing-plan",
"path": "skills/marketing-plan",
"i18n": {
"zh-CN": {
"shortDesc": "When the user needs a comprehensive marketing plan for a client, a company they advise, or their own product."
},
"en-US": {
"shortDesc": "When the user needs a comprehensive marketing plan for a client, a company they advise, or their own product."
}
}
},
{
"id": "marketing-psychology",
"path": "skills/marketing-psychology",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to apply psychological principles, mental models, or behavioral science to marketing."
},
"en-US": {
"shortDesc": "When the user wants to apply psychological principles, mental models, or behavioral science to marketing."
}
}
},
{
"id": "offers",
"path": "skills/offers",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to design, construct, or improve an offer — the thing they actually sell — including value framing, bonus stacking, guarantee design, scarci…"
},
"en-US": {
"shortDesc": "When the user wants to design, construct, or improve an offer — the thing they actually sell — including value framing, bonus stacking, guarantee design, scarci…"
}
}
},
{
"id": "onboarding",
"path": "skills/onboarding",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value."
},
"en-US": {
"shortDesc": "When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value."
}
}
},
{
"id": "paywalls",
"path": "skills/paywalls",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates."
},
"en-US": {
"shortDesc": "When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates."
}
}
},
{
"id": "popups",
"path": "skills/popups",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes."
},
"en-US": {
"shortDesc": "When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes."
}
}
},
{
"id": "pricing",
"path": "skills/pricing",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants help with pricing decisions, packaging, or monetization strategy."
},
"en-US": {
"shortDesc": "When the user wants help with pricing decisions, packaging, or monetization strategy."
}
}
},
{
"id": "product-marketing",
"path": "skills/product-marketing",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create or update their product marketing context document."
},
"en-US": {
"shortDesc": "When the user wants to create or update their product marketing context document."
}
}
},
{
"id": "programmatic-seo",
"path": "skills/programmatic-seo",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create SEO-driven pages at scale using templates and data."
},
"en-US": {
"shortDesc": "When the user wants to create SEO-driven pages at scale using templates and data."
}
}
},
{
"id": "prospecting",
"path": "skills/prospecting",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses."
},
"en-US": {
"shortDesc": "When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses."
}
}
},
{
"id": "public-relations",
"path": "skills/public-relations",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests)."
},
"en-US": {
"shortDesc": "When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests)."
}
}
},
{
"id": "referrals",
"path": "skills/referrals",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy."
},
"en-US": {
"shortDesc": "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy."
}
}
},
{
"id": "revops",
"path": "skills/revops",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes."
},
"en-US": {
"shortDesc": "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes."
}
}
},
{
"id": "sales-enablement",
"path": "skills/sales-enablement",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts."
},
"en-US": {
"shortDesc": "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts."
}
}
},
{
"id": "schema",
"path": "skills/schema",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to add, fix, or optimize schema markup and structured data on their site."
},
"en-US": {
"shortDesc": "When the user wants to add, fix, or optimize schema markup and structured data on their site."
}
}
},
{
"id": "seo-audit",
"path": "skills/seo-audit",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to audit, review, or diagnose SEO issues on their site."
},
"en-US": {
"shortDesc": "When the user wants to audit, review, or diagnose SEO issues on their site."
}
}
},
{
"id": "signup",
"path": "skills/signup",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to optimize signup, registration, account creation, or trial activation flows."
},
"en-US": {
"shortDesc": "When the user wants to optimize signup, registration, account creation, or trial activation flows."
}
}
},
{
"id": "site-architecture",
"path": "skills/site-architecture",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking."
},
"en-US": {
"shortDesc": "When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking."
}
}
},
{
"id": "sms",
"path": "skills/sms",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to plan, build, or optimize SMS or MMS marketing — including welcome flows, abandoned cart texts, post-purchase, win-back, promotional sends…"
},
"en-US": {
"shortDesc": "When the user wants to plan, build, or optimize SMS or MMS marketing — including welcome flows, abandoned cart texts, post-purchase, win-back, promotional sends…"
}
}
},
{
"id": "social",
"path": "skills/social",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms, or w…"
},
"en-US": {
"shortDesc": "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms, or w…"
}
}
},
{
"id": "video",
"path": "skills/video",
"i18n": {
"zh-CN": {
"shortDesc": "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks."
},
"en-US": {
"shortDesc": "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks."
}
}
}
]
}