Not in the top 1,000 by GitHub stars

Rimagination/dy-note

Codex Skill for turning Douyin videos into evidence-based Markdown notes

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

9a65f0d069ca → 9a65f0d069ca

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 9a65f0d069ca

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 9a65f0d069cacdf5b0d7529f2ce1139d38072b47

180GitHub stars
4stars in 7 days
1skill in this repository
0commits in 30 days

Heat

3.1
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 4, 2026180

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

dy-note

When your agent uses it

DyNote: systematically and efficiently extract raw Douyin/DY video data and analyze videos, comments, accounts, hashtags, and short-video scenes into evidence-graded learning notes, summaries, research briefs, scripts, and knowledge-base material. Use when the user asks to 抓取/提取/整理 抖音视频字幕、视频文案、ASR 转写、Qwen3-ASR 中文转写、原始材料归档、学习笔记、analysis plan、note budget、避免返工、复用已有素材、评论洞察、账号分析、赛道/话题研究、竞品拆解、电商/本地生活视频分析、事实核查、自动搜索素材, save Douyin content as Markdown/TXT, or use subtitle/local ASR as the factual spine with logged-in Douyin Web built-in AI / Doubao fallback as visual or quick-reading supplements.

What it loads into context

Frontmatter

192 tokens

Always available to the agent

SKILL.md

9,080 tokens

When the skill is activated

Reference documents

9,247 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 浏览器与登录态硬规则
  2. 抖音字幕现实与默认路线
  3. 场景模式路由
  4. 系统化分析协议
  5. 高效执行与复用策略
  6. 原始材料与学习笔记默认策略
  7. 默认流程
  8. 常用命令
  9. 输出口径
  10. 抖音视频注意事项
  11. 相关文件

Scripts executed separately

  • scripts/archive_dy_note_assets.py
  • scripts/check_environment.py
  • scripts/compute_note_budget.py
  • scripts/create_analysis_plan.py
  • scripts/doubao_video_brief.py
  • scripts/douyin_web_ai_brief.py
  • scripts/extract_douyin_text.py
  • scripts/fetch_douyin_comments.py
  • scripts/inspect_workflow_state.py
  • scripts/run_qwen_asr.py
  • scripts/score_dy_note.py
  • scripts/selftest.py
  • scripts/setup_qwen_asr_env.py

Files

  • .gitattributesasset33 bytes
  • .gitignoreasset265 bytes
  • LICENSEasset1,076 bytes
  • README.mddoc13,977 bytes
  • SKILL.mdcore32,036 bytes
  • SKILL.mdcore32,036 bytes
  • SKILL.mdcore32,036 bytes
  • agents/openai.yamlasset261 bytes
  • assets/dy-note-logo-douyin.pngasset1,282,391 bytes
  • assets/dy-note-logo.pngasset1,515,759 bytes
  • references/douyin-video-text-notes.mddoc24,831 bytes
  • scripts/archive_dy_note_assets.pyruns15,997 bytes
  • scripts/check_environment.pyruns6,672 bytes
  • scripts/compute_note_budget.pyruns17,330 bytes
  • scripts/create_analysis_plan.pyruns12,067 bytes
  • scripts/doubao_video_brief.pyruns20,207 bytes
  • scripts/douyin_web_ai_brief.pyruns18,231 bytes
  • scripts/extract_douyin_text.pyruns42,595 bytes
  • scripts/fetch_douyin_comments.pyruns26,525 bytes
  • scripts/inspect_workflow_state.pyruns8,862 bytes
  • scripts/run_qwen_asr.pyruns5,766 bytes
  • scripts/score_dy_note.pyruns3,074 bytes
  • scripts/selftest.pyruns14,102 bytes
  • scripts/setup_qwen_asr_env.pyruns2,332 bytes
Read SKILL.md

# DyNote

DyNote 是面向 Codex 这类 Agent 的抖音学习工具,不是一次性摘要器。核心原则是“数据资产先行,学习笔记后置”:先把字幕/转写、评论、元数据和 AI 快读沉淀为可复用资产,再按用户需求生成可追溯的学习笔记、总结和写作材料。默认目标不是字幕工程文件,而是先落一份原始数据包:`douyin_ai_brief.md`、`douyin_ai_brief.json`、`transcript.cleaned.md`、`transcript.txt`、`segments.json`、`metadata.json`、`note_budget.json`,并用 `assets/` 归档可复用资产。默认把独立字幕轨或本地自动语音识别转写当作事实主干;当转写密度低、任务需要画面理解或用户只要快速筛选时,再用已登录抖音网页版的“问AI / 识别画面”补充,豆包只作为抖音 AI 不可用时的备用快读或待核验假设。

联网或登录态操作必须先使用 `web-access`。不要读取、复制或打印 Cookie、msToken、a_bogus、x-secsdk-web-signature、临时签名视频 URL 等敏感参数;脚本只让已授权 Chrome 页面自己加载内容。

DyNote 与 Bili Note 共享可复用本地资源。默认共享目录是 `%USERPROFILE%\.cache\rimagination-notes`,Qwen3-ASR 环境默认是 `%USERPROFILE%\.cache\rimagination-notes\qwen3-asr-venv`。如果任一 skill 已经安装过 Qwen3-ASR,另一个 skill 必须优先复用,不要重复安装。Hugging Face、Whisper 和 faster-whisper 缓存按本机通用缓存复用。

## 浏览器与登录态硬规则

- 抖音内置 AI 和豆包备用路线都只使用 `web-access` 连接到用户当前可用的 Chrome。不要启动无登录态 Playwright 浏览器,不要用静态 curl 抓登录页,不要导出或保存 `storageState`、Cookie、localStorage 或 token。
- 抖音内置 AI 路线需要当前 Chrome 已登录抖音网页版。它主要用于低转写密度、画面文字、镜头/场景或快速筛选;打开视频后使用页面右侧 `问AI`,必要时点击可见的 `识别画面` 把当前帧加入问答上下文。
- 如果抖音页面没有 `问AI` / `识别画面` 或未生成 `章节要点`,记录为 `weak` 或 `blocked`,先确保字幕/本地自动语音识别事实主干可用,再考虑豆包备用、关键帧或 OCR。
- 在向豆包发送内容前,必须确认 `https://www.doubao.com/chat/` 在当前 Chrome 中已登录且有可见聊天输入框、侧边栏/新对话等用户态界面。
View the complete source on GitHub

Skills included

  • dy-note

Repository facts

License
MIT
Created
Jun 25, 2026
Last pushed
Jun 27, 2026
Forks
25
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 2 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 122 signals by file

.gitignore

  • Access to secretsline 8
    [Credential-related source omitted]

README.md

  • Network accessline 5
    <p align="center">   <img alt="Douyin" src="https://img.shields.io/badge/Douyin-video_%2B_comments-FE2C55?style=for-the-badge">
  • Network accessline 6
    <img alt="Douyin" src="https://img.shields.io/badge/Douyin-video_%2B_comments-FE2C55?style=for-the-badge">
  • Network accessline 7
    <img alt="Markdown" src="https://img.shields.io/badge/Markdown-learning_notes-222222?style=for-the-badge&logo=markdown">
  • Network accessline 8
    <img alt="License MIT" src="https://img.shields.io/badge/License-MIT-FF6699?style=for-the-badge">
  • Network accessline 41
    请帮我安装这个 skill: https://github.com/Rimagination/dy-note
  • Network accessline 42
    https://github.com/Rimagination/dy-note
  • Network accessline 50
    请用 DyNote 分析这条抖音视频,先拿字幕或本地转写;如果转写太少,再用抖音问 AI 补画面: 8.28 x@F.uf gbA:/ 07/06 :9pm 铁板牛排+炸土豆饼 向阳而生 # 助眠 # 治愈 # 美食 # 野外烹饪 # 牛排 https://v.douyin.com/xxxxxxx/ 复制此链接,打开Dou音搜索,直接观看视频!
  • Network accessline 51
    8.28 x@F.uf gbA:/ 07/06 :9pm 铁板牛排+炸土豆饼 向阳而生 # 助眠 # 治愈 # 美食 # 野外烹饪 # 牛排 https://v.douyin.com/xxxxxxx/ 复制此链接,打开Dou音搜索,直接观看视频!
  • Network accessline 164
    DyNote 和 [Bili Note](https://github.com/Rimagination/bili-note) 会共享可复用资源。默认共享目录:
  • Network accessline 232
    - [Bili Note](https://github.com/Rimagination/bili-note):同系列 B 站视频与图文笔记 skill,DyNote 的笔记预算、原始材料优先和学习型笔记思路都继承自它。
  • Network accessline 233
    - [LINUX DO](https://linux.do/):一个关注开发者、开源项目与 AI 工具交流的社区。感谢社区佬友对开源工具和 Agent 工作流的讨论与反馈。
  • Network accessline 239
    - [Bili Note](https://github.com/Rimagination/bili-note):同系列项目,提供了原始材料归档、笔记预算和学习型笔记的核心设计参考。
  • Network accessline 240
    - [抖音](https://www.douyin.com/):视频、页面信息、评论和互动数据来源。
  • Network accessline 241
    - [豆包](https://www.doubao.com/):备用网页快读路线,用于抖音内置 AI 不可用时生成草稿。
  • Network accessline 242
    - [Qwen3-ASR](https://huggingface.co/Qwen/Qwen3-ASR-0.6B):可选中文本地自动语音识别后端。
  • Network accessline 243
    - [FFmpeg](https://ffmpeg.org/):可选音频处理和转码。
  • Network accessline 244
    - [OpenAI Whisper](https://github.com/openai/whisper) 与 [faster-whisper](https://github.com/SYSTRAN/faster-whisper):可选外语视频转写后端。

SKILL.md

  • Network accessline 16
    - 抖音内置 AI 和豆包备用路线都只使用 `web-access` 连接到用户当前可用的 Chrome。不要启动无登录态 Playwright 浏览器,不要用静态 curl 抓登录页,不要导出或保存 `storageState`、Cookie、localStorage 或 token。
  • Network accessline 17
    - 抖音内置 AI 路线需要当前 Chrome 已登录抖音网页版。它主要用于低转写密度、画面文字、镜头/场景或快速筛选;打开视频后使用页面右侧 `问AI`,必要时点击可见的 `识别画面` 把当前帧加入问答上下文。 - 如果抖音页面没有 `问AI` / `识别画面` 或未生成 `章节要点`,记录为 `weak` 或 `blocked`,先确保字幕/本地自动语音识别事实主干可用,再考虑豆包备用、关键帧或 OCR。 - 在向豆包发送内容前,必须确认 `https://www.dou
  • Network accessline 18
    - 如果抖音页面没有 `问AI` / `识别画面` 或未生成 `章节要点`,记录为 `weak` 或 `blocked`,先确保字幕/本地自动语音识别事实主干可用,再考虑豆包备用、关键帧或 OCR。 - 在向豆包发送内容前,必须确认 `https://www.doubao.com/chat/` 在当前 Chrome 中已登录且有可见聊天输入框、侧边栏/新对话等用户态界面。 - 如果未检测到豆包登录态,停止并返回 `blocked: doubao-login-required`
  • Network accessline 19
    - 在向豆包发送内容前,必须确认 `https://www.doubao.com/chat/` 在当前 Chrome 中已登录且有可见聊天输入框、侧边栏/新对话等用户态界面。
  • Network accessline 162
    & $py "$skill\scripts\extract_douyin_text.py" `   --from-txt ".\raw_transcript.txt" `   --source-url "https://www.douyin.com/video/..." `
  • Network accessline 163
    --from-txt ".\raw_transcript.txt" `   --source-url "https://www.douyin.com/video/..." `   --out-dir ".\dy_note_output"
  • Network accessline 164
    --source-url "https://www.douyin.com/video/..." `
  • Network accessline 190
    & $py "$skill\scripts\extract_douyin_text.py" `   "https://v.douyin.com/xxxxxxx/" `
  • Network accessline 191
    "https://v.douyin.com/xxxxxxx/" `
  • Network accessline 206
    & $py "$skill\scripts\extract_douyin_text.py" `   "https://v.douyin.com/xxxxxxx/" `
  • Network accessline 207
    "https://v.douyin.com/xxxxxxx/" `
  • Network accessline 240
    & $py "$skill\scripts\extract_douyin_text.py" `   "https://www.douyin.com/video/7647145112421633320" `
  • Network accessline 241
    "https://www.douyin.com/video/7647145112421633320" `
  • Network accessline 254
    & $py "$skill\scripts\douyin_web_ai_brief.py" `   "https://www.douyin.com/jingxuan?modal_id=7655645985318085322" `
  • Network accessline 255
    "https://www.douyin.com/jingxuan?modal_id=7655645985318085322" `
  • Network accessline 262
    & $py "$skill\scripts\douyin_web_ai_brief.py" `   "https://www.douyin.com/jingxuan?modal_id=7655645985318085322" `
  • Network accessline 263
    "https://www.douyin.com/jingxuan?modal_id=7655645985318085322" `
  • Network accessline 286
    & $py "$skill\scripts\doubao_video_brief.py" `   "8.28 x@F.uf gbA:/ 07/06 :9pm 铁板牛排+炸土豆饼 向阳而生 # 助眠 # 治愈 # 美食 # 野外烹饪 # 牛排 https://v.douyin.com/xxxxxxx/ 复制此链接,打开Dou音搜索,直接观看视频!" `
  • Network accessline 287
    "8.28 x@F.uf gbA:/ 07/06 :9pm 铁板牛排+炸土豆饼 向阳而生 # 助眠 # 治愈 # 美食 # 野外烹饪 # 牛排 https://v.douyin.com/xxxxxxx/ 复制此链接,打开Dou音搜索,直接观看视频!" `
  • Network accessline 365
    & $py "$skill\scripts\fetch_douyin_comments.py" `   "https://www.douyin.com/video/7655645985318085322" `
  • Network accessline 366
    "https://www.douyin.com/video/7655645985318085322" `
  • Network accessline 380
    & $py "$skill\scripts\fetch_douyin_comments.py" `   "https://www.douyin.com/video/7655645985318085322" `
  • Network accessline 381
    "https://www.douyin.com/video/7655645985318085322" `

references/douyin-video-text-notes.md

  • Network accessline 194
    Practical behavior verified on `https://www.douyin.com/jingxuan?modal_id=7655645985318085322`:
  • Network accessline 196
    - The modal URL can be normalized to `https://www.douyin.com/video/7655645985318085322`.

scripts/archive_dy_note_assets.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/check_environment.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 31
    def proxy_ready() -> bool:     try:         with request.urlopen("http://localhost:3456/targets", timeout=3) as resp:
  • Network accessline 32
    try:         with request.urlopen("http://localhost:3456/targets", timeout=3) as resp:             return resp.status == 200
  • Network accessline 33
    with request.urlopen("http://localhost:3456/targets", timeout=3) as resp:
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]

scripts/compute_note_budget.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/create_analysis_plan.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/doubao_video_brief.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 5
    [Credential-related source omitted]
  • Network accessline 24
    PROXY = "http://localhost:3456"
  • Network accessline 25
    DOUBAO_CHAT_URL = "https://www.doubao.com/chat/"
  • Possible obfuscationline 203
    const text = new TextDecoder().decode(Uint8Array.from(atob({json.dumps(encoded)}), c => c.charCodeAt(0)));
  • Network accessline 438
    "status": "blocked",                 "reason": "doubao-login-required",                 "message": "当前可用 Chrome 未检测到豆包登录态。请先在这个 Chrome 登录 https://www.doubao.com/chat/ 后重试。",
  • Network accessline 439
    "reason": "doubao-login-required",                 "message": "当前可用 Chrome 未检测到豆包登录态。请先在这个 Chrome 登录 https://www.doubao.com/chat/ 后重试。",                 "login_check": login,
  • Network accessline 440
    "message": "当前可用 Chrome 未检测到豆包登录态。请先在这个 Chrome 登录 https://www.doubao.com/chat/ 后重试。",

scripts/douyin_web_ai_brief.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 5
    [Credential-related source omitted]
  • Network accessline 23
    PROXY = "http://localhost:3456"
  • Network accessline 102
    aweme_id = infer_aweme_id(source)     if aweme_id:         return f"https://www.douyin.com/video/{aweme_id}", aweme_id
  • Network accessline 103
    if aweme_id:         return f"https://www.douyin.com/video/{aweme_id}", aweme_id     return url, None
  • Network accessline 104
    return f"https://www.douyin.com/video/{aweme_id}", aweme_id

scripts/extract_douyin_text.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 27
    PROXY = "http://localhost:3456"
  • Access to secretsline 759
    [Credential-related source omitted]
  • Access to secretsline 760
    [Credential-related source omitted]
  • Access to secretsline 761
    [Credential-related source omitted]
  • Access to secretsline 762
    [Credential-related source omitted]
  • Access to secretsline 765
    [Credential-related source omitted]
  • Access to secretsline 766
    [Credential-related source omitted]
  • Access to secretsline 791
    [Credential-related source omitted]
  • Access to secretsline 792
    [Credential-related source omitted]
  • Access to secretsline 793
    [Credential-related source omitted]
  • Access to secretsline 794
    [Credential-related source omitted]
  • Access to secretsline 797
    [Credential-related source omitted]
  • Access to secretsline 798
    [Credential-related source omitted]
  • Access to secretsline 853
    [Credential-related source omitted]

scripts/fetch_douyin_comments.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 4
    [Credential-related source omitted]
  • Network accessline 22
    PROXY = "http://localhost:3456"
  • Network accessline 177
    u.searchParams.set('item_type', '0');   u.searchParams.set('cut_version', '1');   const r = await fetch(u.toString(), {{credentials: 'include'}});
  • Network accessline 178
    u.searchParams.set('cut_version', '1');   const r = await fetch(u.toString(), {{credentials: 'include'}});   const text = await r.text();
  • Network accessline 179
    const r = await fetch(u.toString(), {{credentials: 'include'}});
  • Network accessline 205
    u.searchParams.set('cut_version', '1');   if (!u.searchParams.has('whale_cut_token')) u.searchParams.set('whale_cut_token', '');   const r = await fetch(u.toString(), {{credentials: 'include'}});
  • Network accessline 206
    if (!u.searchParams.has('whale_cut_token')) u.searchParams.set('whale_cut_token', '');   const r = await fetch(u.toString(), {{credentials: 'include'}});   const text = await r.text();
  • Network accessline 207
    const r = await fetch(u.toString(), {{credentials: 'include'}});
  • Network accessline 398
    "uid": user.get("uid") or "",         "sec_uid": sec_uid,         "user_url": f"https://www.douyin.com/user/{sec_uid}" if sec_uid else "",
  • Network accessline 399
    "sec_uid": sec_uid,         "user_url": f"https://www.douyin.com/user/{sec_uid}" if sec_uid else "",         "digg_count": c.get("digg_count", c.get("diggCount", "")),
  • Network accessline 400
    "user_url": f"https://www.douyin.com/user/{sec_uid}" if sec_uid else "",

scripts/inspect_workflow_state.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/run_qwen_asr.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/score_dy_note.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/selftest.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 77
    out_dir=out_dir,             metadata_path=metadata_path,             source_url="https://www.douyin.com/video/123",
  • Network accessline 78
    metadata_path=metadata_path,             source_url="https://www.douyin.com/video/123",         )
  • Network accessline 79
    source_url="https://www.douyin.com/video/123",
  • Network accessline 135
    def test_normalize_douyin_web_ai_source_url() -> None:     url, aweme_id = dwai.normalize_source_url("https://www.douyin.com/jingxuan?modal_id=7655645985318085322")
  • Network accessline 136
    url, aweme_id = dwai.normalize_source_url("https://www.douyin.com/jingxuan?modal_id=7655645985318085322")
  • Network accessline 138
    assert url == "https://www.douyin.com/video/7655645985318085322"
  • Network accessline 167
    out_dir=out_dir,             metadata={"aweme_id": "qwen-test", "desc": "Qwen 测试"},             source_url="https://www.douyin.com/video/qwen-test",
  • Network accessline 168
    metadata={"aweme_id": "qwen-test", "desc": "Qwen 测试"},             source_url="https://www.douyin.com/video/qwen-test",         )
  • Network accessline 169
    source_url="https://www.douyin.com/video/qwen-test",
  • Network accessline 189
    def test_asr_backend_argument_accepts_qwen() -> None:     parser = dut.build_arg_parser()     args = parser.parse_args(["https://v.douyin.com/example/", "--asr-backend", "qwen3-asr"])
  • Network accessline 190
    parser = dut.build_arg_parser()     args = parser.parse_args(["https://v.douyin.com/example/", "--asr-backend", "qwen3-asr"])     assert args.asr_backend == "qwen3-asr"
  • Network accessline 191
    args = parser.parse_args(["https://v.douyin.com/example/", "--asr-backend", "qwen3-asr"])
  • Network accessline 229
    (out_dir / "note_budget.json").write_text('{"recommended_note_chars_min":800}', encoding="utf-8")         comments = {             "source_url": "https://www.douyin.com/video/123",
  • Network accessline 230
    comments = {             "source_url": "https://www.douyin.com/video/123",             "aweme_id": "123",
  • Network accessline 231
    "source_url": "https://www.douyin.com/video/123",
  • Network accessline 272
    out_dir=Path(tmp),             basename="comments_test",             source_url="https://www.douyin.com/video/123",
  • Network accessline 273
    basename="comments_test",             source_url="https://www.douyin.com/video/123",             aweme_id="123",
  • Network accessline 274
    source_url="https://www.douyin.com/video/123",
  • Network accessline 287
    out_dir = Path(tmp)         sample = {             "source_url": "https://www.douyin.com/video/123",
  • Network accessline 288
    sample = {             "source_url": "https://www.douyin.com/video/123",             "aweme_id": "123",
  • Network accessline 289
    "source_url": "https://www.douyin.com/video/123",

scripts/setup_qwen_asr_env.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 20
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 121 facts

and 71 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.