mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-09-05 22:24:06 +08:00
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>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "DesireCore Official Market",
|
"name": "DesireCore Official Market",
|
||||||
"version": "1.2.24",
|
"version": "1.2.25",
|
||||||
"schemaVersion": "1.1.0",
|
"schemaVersion": "1.1.0",
|
||||||
"supportedLocales": ["zh-CN", "en-US"],
|
"supportedLocales": ["zh-CN", "en-US"],
|
||||||
"defaultLocale": "en-US",
|
"defaultLocale": "en-US",
|
||||||
|
|||||||
219
scripts/gen-collection-children.py
Executable file
219
scripts/gen-collection-children.py
Executable file
@@ -0,0 +1,219 @@
|
|||||||
|
#!/usr/bin/env -S uv run --script
|
||||||
|
# /// script
|
||||||
|
# requires-python = ">=3.10"
|
||||||
|
# dependencies = ["pyyaml>=6.0"]
|
||||||
|
# ///
|
||||||
|
"""Generate `children` for collection entries in skills/<id>/entry.json.
|
||||||
|
|
||||||
|
A collection entry points at an upstream repo that holds several sibling skills
|
||||||
|
(e.g. larksuite/cli has skills/lark-im, skills/lark-doc, ...). One market card
|
||||||
|
covers them all; the client lets the user tick which ones to install. That needs
|
||||||
|
a declared child list so the detail page renders without touching the network.
|
||||||
|
|
||||||
|
For each requested entry this script:
|
||||||
|
1. clones the pinned ref (shallow, falling back to fetch-by-SHA);
|
||||||
|
2. walks the tree for SKILL.md files, skipping test fixtures and vendored dirs;
|
||||||
|
3. reads frontmatter name/description/version;
|
||||||
|
4. writes `children` back into entry.json, leaving every other field untouched.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python3 scripts/gen-collection-children.py # all entries that already declare children
|
||||||
|
python3 scripts/gen-collection-children.py larksuite-cli # specific ids
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||||
|
SKILLS_DIR = REPO_ROOT / "skills"
|
||||||
|
|
||||||
|
# Path segments that never hold a publishable skill: test fixtures for skill
|
||||||
|
# linters look exactly like real skills (larksuite/cli ships six of them under
|
||||||
|
# scripts/skill-format-check/tests/), so excluding them is not optional.
|
||||||
|
EXCLUDED_SEGMENTS = {
|
||||||
|
".git", "node_modules", "upstream", ".cache", "vendor", "internal",
|
||||||
|
"test", "tests", "__tests__", "testdata", "test-data",
|
||||||
|
"fixture", "fixtures", "__fixtures__",
|
||||||
|
"example", "examples", "template", "templates",
|
||||||
|
}
|
||||||
|
|
||||||
|
# Descriptions run to several hundred characters upstream; the picker only has
|
||||||
|
# room for one line, so keep the first sentence.
|
||||||
|
MAX_SHORT_DESC = 160
|
||||||
|
|
||||||
|
|
||||||
|
def run(cmd: list[str], cwd: Path | None = None) -> subprocess.CompletedProcess:
|
||||||
|
return subprocess.run(cmd, cwd=cwd, capture_output=True, text=True)
|
||||||
|
|
||||||
|
|
||||||
|
def clone_pinned(repo_url: str, branch: str, ref: str | None, dest: Path) -> None:
|
||||||
|
"""Clone at the pinned ref. Mirrors the client's cloneGitToTemp behaviour."""
|
||||||
|
result = run(["git", "clone", "--quiet", "--single-branch", "-b", branch,
|
||||||
|
"--depth", "100", repo_url, str(dest)])
|
||||||
|
if result.returncode != 0:
|
||||||
|
raise RuntimeError(f"clone failed: {result.stderr.strip()[:300]}")
|
||||||
|
|
||||||
|
if not ref:
|
||||||
|
return
|
||||||
|
|
||||||
|
if run(["git", "checkout", "--quiet", ref], cwd=dest).returncode == 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Pinned commit fell outside the shallow window — fetch that object alone.
|
||||||
|
# Both failures carry stderr: "cannot fetch pinned ref <sha>" alone cannot
|
||||||
|
# tell a missing commit object from a permissions or network problem.
|
||||||
|
fetched = run(["git", "fetch", "--quiet", "origin", ref, "--depth", "1"], cwd=dest)
|
||||||
|
if fetched.returncode != 0:
|
||||||
|
raise RuntimeError(f"cannot fetch pinned ref {ref}: {fetched.stderr.strip()[:300]}")
|
||||||
|
|
||||||
|
checked_out = run(["git", "checkout", "--quiet", ref], cwd=dest)
|
||||||
|
if checked_out.returncode != 0:
|
||||||
|
raise RuntimeError(f"cannot check out pinned ref {ref}: {checked_out.stderr.strip()[:300]}")
|
||||||
|
|
||||||
|
|
||||||
|
def parse_frontmatter(path: Path) -> dict:
|
||||||
|
try:
|
||||||
|
text = path.read_text(encoding="utf-8", errors="replace")
|
||||||
|
except OSError:
|
||||||
|
return {}
|
||||||
|
match = re.match(r"^---\n(.*?)\n---", text, re.S)
|
||||||
|
if not match:
|
||||||
|
return {}
|
||||||
|
try:
|
||||||
|
data = yaml.safe_load(match.group(1))
|
||||||
|
except yaml.YAMLError:
|
||||||
|
return {}
|
||||||
|
return data if isinstance(data, dict) else {}
|
||||||
|
|
||||||
|
|
||||||
|
def first_sentence(text: str) -> str:
|
||||||
|
flat = " ".join(str(text).split())
|
||||||
|
match = re.search(r"^(.{1,%d}?[。.!?!?])\s" % MAX_SHORT_DESC, flat + " ")
|
||||||
|
candidate = match.group(1) if match else flat
|
||||||
|
if len(candidate) > MAX_SHORT_DESC:
|
||||||
|
candidate = candidate[:MAX_SHORT_DESC].rstrip() + "…"
|
||||||
|
return candidate
|
||||||
|
|
||||||
|
|
||||||
|
def normalize_version(raw) -> str | None:
|
||||||
|
"""Mirror the client's normalizeSemver: upstream writes `1.0` and `v1.2.3`."""
|
||||||
|
if raw is None:
|
||||||
|
return None
|
||||||
|
core = str(raw).strip().lstrip("vV").split("-")[0].split("+")[0]
|
||||||
|
match = re.match(r"^(\d+)(?:\.(\d+))?(?:\.(\d+))?$", core)
|
||||||
|
if not match:
|
||||||
|
return None
|
||||||
|
major, minor, patch = match.groups()
|
||||||
|
return f"{int(major)}.{int(minor or 0)}.{int(patch or 0)}"
|
||||||
|
|
||||||
|
|
||||||
|
def discover_children(repo_dir: Path) -> list[dict]:
|
||||||
|
children: list[dict] = []
|
||||||
|
seen: dict[str, str] = {}
|
||||||
|
|
||||||
|
# Convention first: when the repo has a top-level skills/ directory, that is
|
||||||
|
# the published set. Scanning the whole tree instead picks up decoys such as
|
||||||
|
# larksuite/cli's internal/qualitygate/skillscan/testdata/skills/lark-demo,
|
||||||
|
# which is a linter fixture, not a shippable skill.
|
||||||
|
scan_root = repo_dir / "skills" if (repo_dir / "skills").is_dir() else repo_dir
|
||||||
|
|
||||||
|
for skill_md in sorted(scan_root.rglob("SKILL.md")):
|
||||||
|
rel = skill_md.relative_to(repo_dir)
|
||||||
|
segments = [s.lower() for s in rel.parts[:-1]]
|
||||||
|
if any(seg in EXCLUDED_SEGMENTS for seg in segments):
|
||||||
|
continue
|
||||||
|
if not segments:
|
||||||
|
continue # repo root itself is a single skill, not a collection
|
||||||
|
|
||||||
|
child_id = rel.parts[-2]
|
||||||
|
if not re.match(r"^[a-z0-9-]+$", child_id):
|
||||||
|
print(f" ! skipped {rel.parent}: directory name is not a valid skill id")
|
||||||
|
continue
|
||||||
|
if child_id in seen:
|
||||||
|
print(f" ! skipped {rel.parent}: id '{child_id}' already taken by {seen[child_id]}")
|
||||||
|
continue
|
||||||
|
seen[child_id] = str(rel.parent)
|
||||||
|
|
||||||
|
fm = parse_frontmatter(skill_md)
|
||||||
|
child: dict = {"id": child_id, "path": str(rel.parent)}
|
||||||
|
name = fm.get("display_name") or fm.get("name")
|
||||||
|
if name and str(name) != child_id:
|
||||||
|
child["name"] = str(name)
|
||||||
|
version = normalize_version(fm.get("version"))
|
||||||
|
if version:
|
||||||
|
child["version"] = version
|
||||||
|
description = fm.get("description")
|
||||||
|
if description:
|
||||||
|
child["i18n"] = {
|
||||||
|
"zh-CN": {"shortDesc": first_sentence(description)},
|
||||||
|
"en-US": {"shortDesc": first_sentence(description)},
|
||||||
|
}
|
||||||
|
children.append(child)
|
||||||
|
|
||||||
|
return children
|
||||||
|
|
||||||
|
|
||||||
|
def process(entry_id: str) -> bool:
|
||||||
|
entry_path = SKILLS_DIR / entry_id / "entry.json"
|
||||||
|
if not entry_path.exists():
|
||||||
|
print(f"{entry_id}: no entry.json")
|
||||||
|
return False
|
||||||
|
|
||||||
|
entry = json.loads(entry_path.read_text(encoding="utf-8"))
|
||||||
|
source = entry.get("source", {})
|
||||||
|
if source.get("kind") != "git":
|
||||||
|
print(f"{entry_id}: only git sources can be collections (kind={source.get('kind')})")
|
||||||
|
return False
|
||||||
|
|
||||||
|
print(f"{entry_id}: cloning {source['repoUrl']} …")
|
||||||
|
with tempfile.TemporaryDirectory(prefix=f"collection-{entry_id}-") as tmp:
|
||||||
|
repo_dir = Path(tmp) / "repo"
|
||||||
|
try:
|
||||||
|
clone_pinned(source["repoUrl"], source.get("repoBranch", "main"), source.get("ref"), repo_dir)
|
||||||
|
except RuntimeError as err:
|
||||||
|
print(f"{entry_id}: {err}")
|
||||||
|
return False
|
||||||
|
children = discover_children(repo_dir)
|
||||||
|
|
||||||
|
if not children:
|
||||||
|
print(f"{entry_id}: no sub-skills found — not a collection?")
|
||||||
|
return False
|
||||||
|
|
||||||
|
entry.pop("children", None)
|
||||||
|
entry["children"] = children
|
||||||
|
# source.path is mutually exclusive with children (the client rejects both).
|
||||||
|
entry.get("source", {}).pop("path", None)
|
||||||
|
entry_path.write_text(json.dumps(entry, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||||
|
print(f"{entry_id}: wrote {len(children)} children")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
ids = sys.argv[1:]
|
||||||
|
if not ids:
|
||||||
|
ids = sorted(
|
||||||
|
p.parent.name
|
||||||
|
for p in SKILLS_DIR.glob("*/entry.json")
|
||||||
|
if "children" in json.loads(p.read_text(encoding="utf-8"))
|
||||||
|
)
|
||||||
|
if not ids:
|
||||||
|
print("no collection entries found; pass ids explicitly")
|
||||||
|
return 1
|
||||||
|
|
||||||
|
failed = [entry_id for entry_id in ids if not process(entry_id)]
|
||||||
|
if failed:
|
||||||
|
print(f"\nfailed: {', '.join(failed)}")
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repoUrl": "https://github.com/LearnPrompt/ai-news-radar.git",
|
"repoUrl": "https://github.com/LearnPrompt/ai-news-radar.git",
|
||||||
"repoBranch": "master"
|
"repoBranch": "master",
|
||||||
|
"path": "skills/ai-news-radar"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,6 @@
|
|||||||
"redistribution": "allowed",
|
"redistribution": "allowed",
|
||||||
"source": {
|
"source": {
|
||||||
"kind": "web",
|
"kind": "web",
|
||||||
"repoUrl": "https://clawhub.ai/lbs-amap/skills/amap-jsapi-skill"
|
"repoUrl": "https://clawhub.ai/api/v1/skills/amap-jsapi-skill/file?path=SKILL.md&ownerHandle=lbs-amap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,5 +34,280 @@
|
|||||||
"repoUrl": "https://github.com/JimLiu/baoyu-skills.git",
|
"repoUrl": "https://github.com/JimLiu/baoyu-skills.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
"ref": "6b7a2e417500561a5ecdd0b168332f4142584617"
|
"ref": "6b7a2e417500561a5ecdd0b168332f4142584617"
|
||||||
}
|
},
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "baoyu-article-illustrator",
|
||||||
|
"path": "skills/baoyu-article-illustrator",
|
||||||
|
"version": "1.117.4",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-comic",
|
||||||
|
"path": "skills/baoyu-comic",
|
||||||
|
"version": "1.117.4",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Knowledge comic creator supporting multiple art styles and tones."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Knowledge comic creator supporting multiple art styles and tones."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-compress-image",
|
||||||
|
"path": "skills/baoyu-compress-image",
|
||||||
|
"version": "1.56.1",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Compresses images to WebP (default) or PNG with automatic tool selection."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Compresses images to WebP (default) or PNG with automatic tool selection."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-cover-image",
|
||||||
|
"path": "skills/baoyu-cover-image",
|
||||||
|
"version": "1.117.5",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-danger-gemini-web",
|
||||||
|
"path": "skills/baoyu-danger-gemini-web",
|
||||||
|
"version": "1.56.2",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Generates images and text via reverse-engineered Gemini Web API."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Generates images and text via reverse-engineered Gemini Web API."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-danger-x-to-markdown",
|
||||||
|
"path": "skills/baoyu-danger-x-to-markdown",
|
||||||
|
"version": "1.117.3",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Converts X (Twitter) tweets and articles to markdown with YAML front matter."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Converts X (Twitter) tweets and articles to markdown with YAML front matter."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-diagram",
|
||||||
|
"path": "skills/baoyu-diagram",
|
||||||
|
"version": "1.117.3",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Create professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, ill…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Create professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, ill…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-electron-extract",
|
||||||
|
"path": "skills/baoyu-electron-extract",
|
||||||
|
"version": "1.119.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Extracts resources and JavaScript from any installed Electron app (`.asar` bundle), restoring original sources from `.js.map` files when available or formatting…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Extracts resources and JavaScript from any installed Electron app (`.asar` bundle), restoring original sources from `.js.map` files when available or formatting…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-format-markdown",
|
||||||
|
"path": "skills/baoyu-format-markdown",
|
||||||
|
"version": "1.57.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Formats plain text or markdown files with frontmatter, titles, summaries, headings, bold, lists, and code blocks."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Formats plain text or markdown files with frontmatter, titles, summaries, headings, bold, lists, and code blocks."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-image-gen",
|
||||||
|
"path": "skills/baoyu-image-gen",
|
||||||
|
"version": "2.1.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "AI image generation with OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream, Replicate and Agnes APIs."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "AI image generation with OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream, Replicate and Agnes APIs."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-infographic",
|
||||||
|
"path": "skills/baoyu-infographic",
|
||||||
|
"version": "1.117.4",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Generate professional infographics with 21 layout types and 22 visual styles."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Generate professional infographics with 21 layout types and 22 visual styles."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-markdown-to-html",
|
||||||
|
"path": "skills/baoyu-markdown-to-html",
|
||||||
|
"version": "1.117.3",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Converts Markdown to styled HTML with WeChat-compatible themes."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Converts Markdown to styled HTML with WeChat-compatible themes."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-post-to-wechat",
|
||||||
|
"path": "skills/baoyu-post-to-wechat",
|
||||||
|
"version": "1.118.2",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-post-to-weibo",
|
||||||
|
"path": "skills/baoyu-post-to-weibo",
|
||||||
|
"version": "1.117.3",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Posts content to Weibo (微博)."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Posts content to Weibo (微博)."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-post-to-x",
|
||||||
|
"path": "skills/baoyu-post-to-x",
|
||||||
|
"version": "1.58.1",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Posts content and articles to X (Twitter)."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Posts content and articles to X (Twitter)."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-slide-deck",
|
||||||
|
"path": "skills/baoyu-slide-deck",
|
||||||
|
"version": "1.117.4",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Generates professional slide deck images from content."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Generates professional slide deck images from content."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-translate",
|
||||||
|
"path": "skills/baoyu-translate",
|
||||||
|
"version": "1.117.3",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "This skill should be used when the user asks to \"translate\", \"翻译\", \"精翻\", \"translate article\", \"translate to Chinese\", \"translate to English\", \"改成中文\", \"改成英文\", \"c…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "This skill should be used when the user asks to \"translate\", \"翻译\", \"精翻\", \"translate article\", \"translate to Chinese\", \"translate to English\", \"改成中文\", \"改成英文\", \"c…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-url-to-markdown",
|
||||||
|
"path": "skills/baoyu-url-to-markdown",
|
||||||
|
"version": "1.61.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Fetch any URL and convert to markdown using baoyu-fetch CLI (Chrome CDP with site-specific adapters)."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Fetch any URL and convert to markdown using baoyu-fetch CLI (Chrome CDP with site-specific adapters)."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-wechat-summary",
|
||||||
|
"path": "skills/baoyu-wechat-summary",
|
||||||
|
"version": "1.119.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli)."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli)."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-xhs-images",
|
||||||
|
"path": "skills/baoyu-xhs-images",
|
||||||
|
"version": "2.0.1",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "baoyu-youtube-transcript",
|
||||||
|
"path": "skills/baoyu-youtube-transcript",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Downloads YouTube video transcripts/subtitles and cover images by URL or video ID."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Downloads YouTube video transcripts/subtitles and cover images by URL or video ID."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,9 @@
|
|||||||
"license": "MIT-0",
|
"license": "MIT-0",
|
||||||
"redistribution": "allowed",
|
"redistribution": "allowed",
|
||||||
"source": {
|
"source": {
|
||||||
"kind": "web",
|
"kind": "git",
|
||||||
"repoUrl": "https://clawhub.ai/ogenes/skills/dingtalk-api"
|
"repoUrl": "https://github.com/ogenes/dingtalk-api.git",
|
||||||
|
"repoBranch": "main",
|
||||||
|
"ref": "83465bf60b522ad19f7822d167489c3c4f79b302"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repoUrl": "https://github.com/pbakaus/impeccable.git",
|
"repoUrl": "https://github.com/pbakaus/impeccable.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
|
"path": "plugin/skills/impeccable",
|
||||||
"ref": "e4ab5e24bdf5321b72163d2fbcbe6fa985c848ba"
|
"ref": "e4ab5e24bdf5321b72163d2fbcbe6fa985c848ba"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,12 @@
|
|||||||
"name": "卡兹克 Skills",
|
"name": "卡兹克 Skills",
|
||||||
"category": "productivity",
|
"category": "productivity",
|
||||||
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><circle cx=\"6\" cy=\"12\" r=\"2\" fill=\"#2563EB\"/><circle cx=\"18\" cy=\"6\" r=\"2\" fill=\"#2563EB\"/><circle cx=\"18\" cy=\"18\" r=\"2\" fill=\"#2563EB\"/><path d=\"m7.8 11.1 8.4-4.2M7.8 12.9l8.4 4.2\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\"/></svg>",
|
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><circle cx=\"6\" cy=\"12\" r=\"2\" fill=\"#2563EB\"/><circle cx=\"18\" cy=\"6\" r=\"2\" fill=\"#2563EB\"/><circle cx=\"18\" cy=\"18\" r=\"2\" fill=\"#2563EB\"/><path d=\"m7.8 11.1 8.4-4.2M7.8 12.9l8.4 4.2\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\"/></svg>",
|
||||||
"tags": ["khazix", "ai-news", "writing", "analysis"],
|
"tags": [
|
||||||
|
"khazix",
|
||||||
|
"ai-news",
|
||||||
|
"writing",
|
||||||
|
"analysis"
|
||||||
|
],
|
||||||
"i18n": {
|
"i18n": {
|
||||||
"zh-CN": {
|
"zh-CN": {
|
||||||
"name": "卡兹克 Skills",
|
"name": "卡兹克 Skills",
|
||||||
@@ -28,5 +33,67 @@
|
|||||||
"repoUrl": "https://github.com/KKKKhazix/khazix-skills.git",
|
"repoUrl": "https://github.com/KKKKhazix/khazix-skills.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
"ref": "d4e43c91f16dcd859748c1d71ec7d8aa1ebb4694"
|
"ref": "d4e43c91f16dcd859748c1d71ec7d8aa1ebb4694"
|
||||||
}
|
},
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "aihot",
|
||||||
|
"path": "aihot",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "AI HOT (aihot.virxact.com) 中文 AI 资讯查询 Skill。当用户想知道\"今天 AI 圈有什么\"、\"AI 日报\"、\"AI HOT\"、\"AI 资讯\"、\"AI 热点\"、\"最近 AI\"、\"OpenAI/Anthropic/Google 最近发布了什么\"、\"AI hot today\"、\"AI new…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "AI HOT (aihot.virxact.com) 中文 AI 资讯查询 Skill。当用户想知道\"今天 AI 圈有什么\"、\"AI 日报\"、\"AI HOT\"、\"AI 资讯\"、\"AI 热点\"、\"最近 AI\"、\"OpenAI/Anthropic/Google 最近发布了什么\"、\"AI hot today\"、\"AI new…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hv-analysis",
|
||||||
|
"path": "hv-analysis",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "横纵分析法(Horizontal-Vertical Analysis)深度研究Skill。由数字生命卡兹克提出,融合了索绪尔的历时-共时分析、社会科学的纵向-横截面研究设计、商学院案例研究法与竞争战略分析的核心思想。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "横纵分析法(Horizontal-Vertical Analysis)深度研究Skill。由数字生命卡兹克提出,融合了索绪尔的历时-共时分析、社会科学的纵向-横截面研究设计、商学院案例研究法与竞争战略分析的核心思想。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "khazix-writer",
|
||||||
|
"path": "khazix-writer",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "数字生命卡兹克(Khazix)的公众号长文写作skill。当用户需要撰写公众号文章、写稿子、续写文章、根据素材产出长文时使用。触发词包括但不限于:写文章、写稿子、帮我写、续写、扩写、公众号文章、长文、出稿、按我的风格写。即使用户只是说\"帮我把这个写成文章\"或\"用我的风格写一下\",只要上下文涉及内容创作和公众号输出,都应…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "数字生命卡兹克(Khazix)的公众号长文写作skill。当用户需要撰写公众号文章、写稿子、续写文章、根据素材产出长文时使用。触发词包括但不限于:写文章、写稿子、帮我写、续写、扩写、公众号文章、长文、出稿、按我的风格写。即使用户只是说\"帮我把这个写成文章\"或\"用我的风格写一下\",只要上下文涉及内容创作和公众号输出,都应…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "neat-freak",
|
||||||
|
"path": "neat-freak",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "End-of-session knowledge cleanup with OCD-level rigor — reconciles project docs (CLAUDE.md, README.md, docs/) and agent memory against the code, and audits whet…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "End-of-session knowledge cleanup with OCD-level rigor — reconciles project docs (CLAUDE.md, README.md, docs/) and agent memory against the code, and audits whet…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "storage-analyzer",
|
||||||
|
"path": "storage-analyzer",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "macOS / Windows 只读存储分析助手(自动识别系统)。扫描整机磁盘占用,找出 占空间大户,把每一项分成 🟢可自动清理 / 🟡需人工判断 / 🔴谨慎清理 三级并给出 可执行处置方案,生成排版精美、可折叠、命令可一键复制的交互式 HTML 报告,并可 起本地服务在网页上一键删除(移废纸篓/直接删)。扫描全程只读…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "macOS / Windows 只读存储分析助手(自动识别系统)。扫描整机磁盘占用,找出 占空间大户,把每一项分成 🟢可自动清理 / 🟡需人工判断 / 🔴谨慎清理 三级并给出 可执行处置方案,生成排版精美、可折叠、命令可一键复制的交互式 HTML 报告,并可 起本地服务在网页上一键删除(移废纸篓/直接删)。扫描全程只读…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,5 +30,358 @@
|
|||||||
"repoUrl": "https://github.com/larksuite/cli.git",
|
"repoUrl": "https://github.com/larksuite/cli.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
"ref": "4c31323de1ca878b2070c05f7c3cb66c0de4c767"
|
"ref": "4c31323de1ca878b2070c05f7c3cb66c0de4c767"
|
||||||
}
|
},
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "lark-approval",
|
||||||
|
"path": "skills/lark-approval",
|
||||||
|
"version": "1.2.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书审批:查询和处理审批待办/已办/实例,搜索可发起审批定义、查看定义详情并发起原生审批实例。当用户要处理审批任务、查看审批实例、搜索或发起审批时使用。审批待办不是飞书任务;非审批类待办走 lark-task。不负责创建审批定义;三方审批定义不走原生提单。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书审批:查询和处理审批待办/已办/实例,搜索可发起审批定义、查看定义详情并发起原生审批实例。当用户要处理审批任务、查看审批实例、搜索或发起审批时使用。审批待办不是飞书任务;非审批类待办走 lark-task。不负责创建审批定义;三方审批定义不走原生提单。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-apps",
|
||||||
|
"path": "skills/lark-apps",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "妙搭(Spark/Miaoda)应用开发与托管:应用创建、HTML静态站点发布、本地全栈开发、云端生成迭代。当用户要开发/新建一个系统·工具·平台·应用,或要本地开发 / 云端开发 / 修改 / 部署 / 发布 / 上线 / 拿可分享链接,或用 HTML 做页面·网站·部署到妙搭,或提到妙搭/Spark/Miaoda(…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "妙搭(Spark/Miaoda)应用开发与托管:应用创建、HTML静态站点发布、本地全栈开发、云端生成迭代。当用户要开发/新建一个系统·工具·平台·应用,或要本地开发 / 云端开发 / 修改 / 部署 / 发布 / 上线 / 拿可分享链接,或用 HTML 做页面·网站·部署到妙搭,或提到妙搭/Spark/Miaoda(…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-attendance",
|
||||||
|
"path": "skills/lark-attendance",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书考勤打卡:查询自己的考勤打卡记录"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书考勤打卡:查询自己的考勤打卡记录"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-base",
|
||||||
|
"path": "skills/lark-base",
|
||||||
|
"version": "1.2.2",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-calendar",
|
||||||
|
"path": "skills/lark-calendar",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-contact",
|
||||||
|
"path": "skills/lark-contact",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名。当用户提到某人姓名要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAP…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名。当用户提到某人姓名要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAP…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-doc",
|
||||||
|
"path": "skills/lark-doc",
|
||||||
|
"version": "2.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-drive",
|
||||||
|
"path": "skills/lark-drive",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/shee…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/shee…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-event",
|
||||||
|
"path": "skills/lark-event",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/c…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/c…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-im",
|
||||||
|
"path": "skills/lark-im",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-mail",
|
||||||
|
"path": "skills/lark-mail",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书邮箱:Use when user mentions 起草邮件、写邮件、草稿、发送/回复/转发邮件、查阅邮件、看邮件、搜索邮件、邮件文件夹、邮件标签、邮件联系人、监听新邮件、邮件收信规则等;use for mail/email intent only."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书邮箱:Use when user mentions 起草邮件、写邮件、草稿、发送/回复/转发邮件、查阅邮件、看邮件、搜索邮件、邮件文件夹、邮件标签、邮件联系人、监听新邮件、邮件收信规则等;use for mail/email intent only."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-markdown",
|
||||||
|
"path": "skills/lark-markdown",
|
||||||
|
"version": "1.2.1",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书 Markdown:查看、创建、上传、编辑和比较 Markdown 文件。当用户需要创建或编辑 Markdown 文件、读取、修改、局部 patch 或比较差异时使用。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书 Markdown:查看、创建、上传、编辑和比较 Markdown 文件。当用户需要创建或编辑 Markdown 文件、读取、修改、局部 patch 或比较差异时使用。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-minutes",
|
||||||
|
"path": "skills/lark-minutes",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书妙记:搜索妙记、查看妙记基础信息、下载/上传音视频、读取或编辑妙记的产物内容、改标题、替换说话人/关键词。当给出minute_token、本地音视频文件,要查/改/转妙记产物时使用;本地音视频转纪要/逐字稿优先走本 skill,不要用 ffmpeg/whisper 本地转写。不负责:获取会议关联妙记,或仅按自然语言…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书妙记:搜索妙记、查看妙记基础信息、下载/上传音视频、读取或编辑妙记的产物内容、改标题、替换说话人/关键词。当给出minute_token、本地音视频文件,要查/改/转妙记产物时使用;本地音视频转纪要/逐字稿优先走本 skill,不要用 ffmpeg/whisper 本地转写。不负责:获取会议关联妙记,或仅按自然语言…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-note",
|
||||||
|
"path": "skills/lark-note",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书会议纪要(Note)直查:已知 note_id 时查询纪要详情、展示类型、关联文档 token,并读取 unified 原始逐字记录。当用户已持有 note_id,或从文档显式 vc-node-id 获得 note_id 时使用。不负责会议/日程/妙记定位、文档标题搜索或 Docx 正文读取。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书会议纪要(Note)直查:已知 note_id 时查询纪要详情、展示类型、关联文档 token,并读取 unified 原始逐字记录。当用户已持有 note_id,或从文档显式 vc-node-id 获得 note_id 时使用。不负责会议/日程/妙记定位、文档标题搜索或 Docx 正文读取。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-okr",
|
||||||
|
"path": "skills/lark-okr",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书 OKR:管理目标与关键结果。查看和编辑 OKR 周期、目标、关键结果、对齐关系、量化指标和进展记录。当用户需要查看或创建 OKR、管理目标和关键结果、查看对齐关系时使用。不负责:待办任务管理(lark-task)、日程/会议安排(lark-calendar)、绩效评估"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书 OKR:管理目标与关键结果。查看和编辑 OKR 周期、目标、关键结果、对齐关系、量化指标和进展记录。当用户需要查看或创建 OKR、管理目标和关键结果、查看对齐关系时使用。不负责:待办任务管理(lark-task)、日程/会议安排(lark-calendar)、绩效评估"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-openapi-explorer",
|
||||||
|
"path": "skills/lark-openapi-explorer",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-shared",
|
||||||
|
"path": "skills/lark-shared",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-c…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-c…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-sheets",
|
||||||
|
"path": "skills/lark-sheets",
|
||||||
|
"version": "3.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作原子批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作原子批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-skill-maker",
|
||||||
|
"path": "skills/lark-skill-maker",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "创建 lark-cli 的自定义 Skill。当用户需要把飞书 API 操作封装成可复用的 Skill(包装原子 API 或编排多步流程)时使用。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "创建 lark-cli 的自定义 Skill。当用户需要把飞书 API 操作封装成可复用的 Skill(包装原子 API 或编排多步流程)时使用。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-slides",
|
||||||
|
"path": "skills/lark-slides",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书幻灯片:创建和编辑幻灯片。创建演示文稿、读取幻灯片内容、管理幻灯片页面(创建、删除、读取、局部替换)。当用户需要创建或编辑幻灯片、读取或修改单个页面时使用。当用户给出 doubao.com 的 /slides/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书幻灯片:创建和编辑幻灯片。创建演示文稿、读取幻灯片内容、管理幻灯片页面(创建、删除、读取、局部替换)。当用户需要创建或编辑幻灯片、读取或修改单个页面时使用。当用户给出 doubao.com 的 /slides/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-task",
|
||||||
|
"path": "skills/lark-task",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书任务:管理任务、清单和任务智能体。创建待办任务、查看和更新任务状态、拆分子任务、组织任务清单、分配协作成员、上传任务附件、注册或注销任务智能体、更新任务智能体的主页数据、写入智能体任务记录。当用户需要创建待办事项、查看任务列表、跟踪任务进度、管理项目清单或给他人分配任务、为任务上传附件文件、注册注销任务智能体、更新…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书任务:管理任务、清单和任务智能体。创建待办任务、查看和更新任务状态、拆分子任务、组织任务清单、分配协作成员、上传任务附件、注册或注销任务智能体、更新任务智能体的主页数据、写入智能体任务记录。当用户需要创建待办事项、查看任务列表、跟踪任务进度、管理项目清单或给他人分配任务、为任务上传附件文件、注册注销任务智能体、更新…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-vc",
|
||||||
|
"path": "skills/lark-vc",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书视频会议:搜索历史会议记录、查询会议纪要(总结/待办/章节/逐字稿)、查询参会人快照。当用户查询已结束的会议、获取会议产物(纪要/妙记)、查看参会人时使用;查询未来日程走 lark-calendar。不负责:Agent 真实入会/离会、会中实时事件(走 lark-vc-agent)。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书视频会议:搜索历史会议记录、查询会议纪要(总结/待办/章节/逐字稿)、查询参会人快照。当用户查询已结束的会议、获取会议产物(纪要/妙记)、查看参会人时使用;查询未来日程走 lark-calendar。不负责:Agent 真实入会/离会、会中实时事件(走 lark-vc-agent)。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-vc-agent",
|
||||||
|
"path": "skills/lark-vc-agent",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书视频会议会中能力:用于让应用机器人真实加入或离开正在进行的会议,并读取当前身份可见的会中事件,如参会人加入/离开、发言、聊天、屏幕共享。适用于用户询问正在开的会议发生了什么、谁在发言、是否共享内容,或需要发现当前可读的进行中会议 ID。不负责已结束会议搜索、参会人快照、纪要、逐字稿或录制查询,这些使用 lark-v…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书视频会议会中能力:用于让应用机器人真实加入或离开正在进行的会议,并读取当前身份可见的会中事件,如参会人加入/离开、发言、聊天、屏幕共享。适用于用户询问正在开的会议发生了什么、谁在发言、是否共享内容,或需要发现当前可读的进行中会议 ID。不负责已结束会议搜索、参会人快照、纪要、逐字稿或录制查询,这些使用 lark-v…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-whiteboard",
|
||||||
|
"path": "skills/lark-whiteboard",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书画板:查询和编辑飞书云文档中的画板。支持导出画板为预览图片、导出原始节点结构、使用多种格式更新画板内容。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书画板:查询和编辑飞书云文档中的画板。支持导出画板为预览图片、导出原始节点结构、使用多种格式更新画板内容。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-wiki",
|
||||||
|
"path": "skills/lark-wiki",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "飞书知识库:管理知识空间、空间成员和文档节点。创建和查询知识空间、查看和管理空间成员、管理节点层级结构、在知识库中组织文档和快捷方式。当用户需要在知识库中查找或创建文档、浏览知识空间结构、查看或管理空间成员、移动或复制节点时使用。当用户给出 doubao.com 的 /wiki/ URL/token 时,也应直接使用本…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "飞书知识库:管理知识空间、空间成员和文档节点。创建和查询知识空间、查看和管理空间成员、管理节点层级结构、在知识库中组织文档和快捷方式。当用户需要在知识库中查找或创建文档、浏览知识空间结构、查看或管理空间成员、移动或复制节点时使用。当用户给出 doubao.com 的 /wiki/ URL/token 时,也应直接使用本…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-workflow-meeting-summary",
|
||||||
|
"path": "skills/lark-workflow-meeting-summary",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "会议纪要整理工作流:汇总指定时间范围内的会议纪要并生成结构化报告。当用户需要整理会议纪要、生成会议周报、回顾一段时间内的会议内容时使用。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "会议纪要整理工作流:汇总指定时间范围内的会议纪要并生成结构化报告。当用户需要整理会议纪要、生成会议周报、回顾一段时间内的会议内容时使用。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lark-workflow-standup-report",
|
||||||
|
"path": "skills/lark-workflow-standup-report",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "日程待办摘要:编排 calendar +agenda 和 task +get-my-tasks,生成指定日期的日程与未完成任务摘要。适用于了解今天/明天/本周的安排。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "日程待办摘要:编排 calendar +agenda 和 task +get-my-tasks,生成指定日期的日程与未完成任务摘要。适用于了解今天/明天/本周的安排。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
"redistribution": "verify-package-terms",
|
"redistribution": "verify-package-terms",
|
||||||
"source": {
|
"source": {
|
||||||
"kind": "zip",
|
"kind": "zip",
|
||||||
"repoUrl": "https://unpkg.luckincoffeecdn.com/@luckin/my-coffee-skill@latest/dist/my-coffee-skill.zip"
|
"repoUrl": "https://unpkg.luckincoffeecdn.com/@luckin/my-coffee-skill@latest/dist/my-coffee-skill.zip",
|
||||||
|
"path": "my-coffee"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,5 +34,595 @@
|
|||||||
"repoUrl": "https://github.com/coreyhaines31/marketingskills.git",
|
"repoUrl": "https://github.com/coreyhaines31/marketingskills.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
"ref": "7868cb9251fad80a73d26e488a5ad5f6c4a9f335"
|
"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."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,427 @@
|
|||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repoUrl": "https://github.com/mattpocock/skills.git",
|
"repoUrl": "https://github.com/mattpocock/skills.git",
|
||||||
"repoBranch": "main"
|
"repoBranch": "main"
|
||||||
}
|
},
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "ask-matt",
|
||||||
|
"path": "skills/engineering/ask-matt",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Ask which skill or flow fits your situation."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Ask which skill or flow fits your situation."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "code-review",
|
||||||
|
"path": "skills/engineering/code-review",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding stand…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding stand…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "codebase-design",
|
||||||
|
"path": "skills/engineering/codebase-design",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Shared vocabulary for designing deep modules."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Shared vocabulary for designing deep modules."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "diagnosing-bugs",
|
||||||
|
"path": "skills/engineering/diagnosing-bugs",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Diagnosis loop for hard bugs and performance regressions."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Diagnosis loop for hard bugs and performance regressions."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "domain-modeling",
|
||||||
|
"path": "skills/engineering/domain-modeling",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Build and sharpen a project's domain model."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Build and sharpen a project's domain model."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "grill-with-docs",
|
||||||
|
"path": "skills/engineering/grill-with-docs",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "implement",
|
||||||
|
"path": "skills/engineering/implement",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Implement a piece of work based on a spec or set of tickets."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Implement a piece of work based on a spec or set of tickets."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "improve-codebase-architecture",
|
||||||
|
"path": "skills/engineering/improve-codebase-architecture",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "prototype",
|
||||||
|
"path": "skills/engineering/prototype",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Build a throwaway prototype to answer a design question."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Build a throwaway prototype to answer a design question."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "research",
|
||||||
|
"path": "skills/engineering/research",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Investigate a question against high-trust primary sources and capture the findings as a Markdown file in the repo."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Investigate a question against high-trust primary sources and capture the findings as a Markdown file in the repo."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "resolving-merge-conflicts",
|
||||||
|
"path": "skills/engineering/resolving-merge-conflicts",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Use when you need to resolve an in-progress git merge/rebase conflict."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Use when you need to resolve an in-progress git merge/rebase conflict."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "setup-matt-pocock-skills",
|
||||||
|
"path": "skills/engineering/setup-matt-pocock-skills",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "tdd",
|
||||||
|
"path": "skills/engineering/tdd",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Test-driven development."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Test-driven development."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "to-spec",
|
||||||
|
"path": "skills/engineering/to-spec",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "to-tickets",
|
||||||
|
"path": "skills/engineering/to-tickets",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker — ed…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker — ed…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "triage",
|
||||||
|
"path": "skills/engineering/triage",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Move issues and external PRs through a state machine of triage roles — categorise, verify, grill if needed, and write agent-ready briefs."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Move issues and external PRs through a state machine of triage roles — categorise, verify, grill if needed, and write agent-ready briefs."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wayfinder",
|
||||||
|
"path": "skills/engineering/wayfinder",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time unt…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time unt…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wizard",
|
||||||
|
"path": "skills/engineering/wizard",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Generate an interactive bash wizard that walks a human through steps only they can perform."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Generate an interactive bash wizard that walks a human through steps only they can perform."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "claude-handoff",
|
||||||
|
"path": "skills/in-progress/claude-handoff",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Hand the current conversation off to a fresh background agent that picks up the work immediately."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Hand the current conversation off to a fresh background agent that picks up the work immediately."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "loop-me",
|
||||||
|
"path": "skills/in-progress/loop-me",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Grill me about specs for the workflows I want to build, within this workspace."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Grill me about specs for the workflows I want to build, within this workspace."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "setup-ts-deep-modules",
|
||||||
|
"path": "skills/in-progress/setup-ts-deep-modules",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point fi…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point fi…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "writing-beats",
|
||||||
|
"path": "skills/in-progress/writing-beats",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Writing, exploit — assemble raw material into a journey of beats, grounding each term before a beat leans on it."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Writing, exploit — assemble raw material into a journey of beats, grounding each term before a beat leans on it."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "writing-fragments",
|
||||||
|
"path": "skills/in-progress/writing-fragments",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Writing, explore — mine raw fragments, no structure yet."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Writing, explore — mine raw fragments, no structure yet."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "writing-shape",
|
||||||
|
"path": "skills/in-progress/writing-shape",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Writing, exploit — shape raw material into an article, paragraph by paragraph."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Writing, exploit — shape raw material into an article, paragraph by paragraph."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "git-guardrails-claude-code",
|
||||||
|
"path": "skills/misc/git-guardrails-claude-code",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "migrate-to-shoehorn",
|
||||||
|
"path": "skills/misc/migrate-to-shoehorn",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Migrate test files from `as` type assertions to @total-typescript/shoehorn."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Migrate test files from `as` type assertions to @total-typescript/shoehorn."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "scaffold-exercises",
|
||||||
|
"path": "skills/misc/scaffold-exercises",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Create exercise directory structures with sections, problems, solutions, and explainers that pass linting."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Create exercise directory structures with sections, problems, solutions, and explainers that pass linting."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "setup-pre-commit",
|
||||||
|
"path": "skills/misc/setup-pre-commit",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "grill-me",
|
||||||
|
"path": "skills/productivity/grill-me",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "A relentless interview to sharpen a plan or design."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "A relentless interview to sharpen a plan or design."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "grilling",
|
||||||
|
"path": "skills/productivity/grilling",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Grill the user relentlessly about a plan, decision, or idea."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Grill the user relentlessly about a plan, decision, or idea."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "handoff",
|
||||||
|
"path": "skills/productivity/handoff",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Compact the current conversation into a handoff document for another agent to pick up."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Compact the current conversation into a handoff document for another agent to pick up."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "teach",
|
||||||
|
"path": "skills/productivity/teach",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Teach the user a new skill or concept, within this workspace."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Teach the user a new skill or concept, within this workspace."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "to-questionnaire",
|
||||||
|
"path": "skills/productivity/to-questionnaire",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Turn a decision you can't fully answer into a questionnaire for someone else to fill in."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Turn a decision you can't fully answer into a questionnaire for someone else to fill in."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wait-what",
|
||||||
|
"path": "skills/productivity/wait-what",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Stop."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Stop."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "writing-for-agents",
|
||||||
|
"path": "skills/productivity/writing-for-agents",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "Writing documents for agents."
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "Writing documents for agents."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,44 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repoUrl": "https://github.com/NetEase/skills.git",
|
"repoUrl": "https://github.com/NetEase/skills.git",
|
||||||
"repoBranch": "main"
|
"repoBranch": "master"
|
||||||
}
|
},
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "ncm-cli-setup",
|
||||||
|
"path": "ncm-cli-setup",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "安装和配置 ncm-cli(网易云音乐 CLI 工具)。当用户需要安装 ncm-cli、配置 API Key、安装 mpv 播放器,或排查安装问题时,使用此 skill。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "安装和配置 ncm-cli(网易云音乐 CLI 工具)。当用户需要安装 ncm-cli、配置 API Key、安装 mpv 播放器,或排查安装问题时,使用此 skill。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "netease-music-assistant",
|
||||||
|
"path": "netease-music-assistant",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "网易云音乐智能助手,以模型判断为核心,通过 ncm-cli 执行操作。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "网易云音乐智能助手,以模型判断为核心,通过 ncm-cli 执行操作。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "netease-music-cli",
|
||||||
|
"path": "netease-music-cli",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "使用 ncm-cli 操作网易云音乐。当用户想播放歌曲、搜索歌曲、控制播放(暂停、下一首、上一首、调音量)、管理播放队列、查看播放状态、播放歌单时,使用此 skill。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "使用 ncm-cli 操作网易云音乐。当用户想播放歌曲、搜索歌曲、控制播放(暂停、下一首、上一首、调音量)、管理播放队列、查看播放状态、播放歌单时,使用此 skill。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repoUrl": "https://github.com/Leonxlnx/taste-skill.git",
|
"repoUrl": "https://github.com/Leonxlnx/taste-skill.git",
|
||||||
"repoBranch": "main"
|
"repoBranch": "main",
|
||||||
|
"path": "skills/taste-skill"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repoUrl": "https://github.com/wechatpay-apiv3/wechatpay-skills.git",
|
"repoUrl": "https://github.com/wechatpay-apiv3/wechatpay-skills.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
|
"path": "wechatpay-payment-integration",
|
||||||
"ref": "8573bdc38b86fa67a42acfc422d6b4dbca4ada21"
|
"ref": "8573bdc38b86fa67a42acfc422d6b4dbca4ada21"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,5 +30,91 @@
|
|||||||
"repoUrl": "https://github.com/WecomTeam/wecom-cli.git",
|
"repoUrl": "https://github.com/WecomTeam/wecom-cli.git",
|
||||||
"repoBranch": "main",
|
"repoBranch": "main",
|
||||||
"ref": "72e14f7695f34d28f1ff23ea504ddd2210a87c13"
|
"ref": "72e14f7695f34d28f1ff23ea504ddd2210a87c13"
|
||||||
}
|
},
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "wecomcli-contact",
|
||||||
|
"path": "skills/wecomcli-contact",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wecomcli-doc",
|
||||||
|
"path": "skills/wecomcli-doc",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "企业微信文档、表格(在线表格)、智能表格和智能文档(原名智能主页)管理技能。提供文档的创建、读取、编辑能力,表格和智能表格的内容读取,智能表格的创建,以及智能文档的创建和内容导出。适用场景:(1) 以 Markdown 格式获取文档/表格/智能表格完整内容 (2) 新建文档或智能表格 (3) 用 Markdown 格式…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "企业微信文档、表格(在线表格)、智能表格和智能文档(原名智能主页)管理技能。提供文档的创建、读取、编辑能力,表格和智能表格的内容读取,智能表格的创建,以及智能文档的创建和内容导出。适用场景:(1) 以 Markdown 格式获取文档/表格/智能表格完整内容 (2) 新建文档或智能表格 (3) 用 Markdown 格式…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wecomcli-meeting",
|
||||||
|
"path": "skills/wecomcli-meeting",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "企业微信会议技能,支持创建预约会议、查询会议列表、获取会议详情、取消会议、更新会议成员。当用户需要\"创建会议\"、\"预约会议\"、\"约会议\"、\"安排会议\"、\"查看会议\"、\"查询会议列表\"、\"会议详情\"、\"什么时候开会\"、\"有哪些会议\"、\"查找会议\"、\"取消会议\"、\"删除会议\"、\"修改会议成员\"、\"添加会议参与人\"、\"移除会…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "企业微信会议技能,支持创建预约会议、查询会议列表、获取会议详情、取消会议、更新会议成员。当用户需要\"创建会议\"、\"预约会议\"、\"约会议\"、\"安排会议\"、\"查看会议\"、\"查询会议列表\"、\"会议详情\"、\"什么时候开会\"、\"有哪些会议\"、\"查找会议\"、\"取消会议\"、\"删除会议\"、\"修改会议成员\"、\"添加会议参与人\"、\"移除会…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wecomcli-msg",
|
||||||
|
"path": "skills/wecomcli-msg",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "企业微信消息技能。提供会话列表查询、消息记录拉取(支持文本/图片/文件/语音/视频)、多媒体文件获取和文本消息发送能力。当用户需要\"查看消息\"、\"看聊天记录\"、\"发消息给某人\"、\"最近有什么消息\"、\"给群里发消息\"、\"看看发了什么图片/文件\"时触发。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "企业微信消息技能。提供会话列表查询、消息记录拉取(支持文本/图片/文件/语音/视频)、多媒体文件获取和文本消息发送能力。当用户需要\"查看消息\"、\"看聊天记录\"、\"发消息给某人\"、\"最近有什么消息\"、\"给群里发消息\"、\"看看发了什么图片/文件\"时触发。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wecomcli-schedule",
|
||||||
|
"path": "skills/wecomcli-schedule",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "企业微信日程管理技能。适用于用户对企业微信日程的各类管理需求。当用户需要:(1) 查询指定时间范围内的日程列表或获取日程详细信息(标题、时间、地点、参与者等),(2) 创建新日程并设置提醒、参与人等,(3) 修改已有日程的标题、时间、地点等信息或取消日程,(4) 添加或移除日程参与人,(5) 查询多个成员的闲忙状态并分…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "企业微信日程管理技能。适用于用户对企业微信日程的各类管理需求。当用户需要:(1) 查询指定时间范围内的日程列表或获取日程详细信息(标题、时间、地点、参与者等),(2) 创建新日程并设置提醒、参与人等,(3) 修改已有日程的标题、时间、地点等信息或取消日程,(4) 添加或移除日程参与人,(5) 查询多个成员的闲忙状态并分…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wecomcli-smartsheet",
|
||||||
|
"path": "skills/wecomcli-smartsheet",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "企业微信智能表格管理技能。提供智能表格的结构管理(子表、字段)和数据管理(记录增删改查)。适用场景:(1) 管理智能表格子表和字段/列 (2) 查询、添加、更新、删除智能表格记录。支持通过 docid 或文档 URL 定位文档。"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "企业微信智能表格管理技能。提供智能表格的结构管理(子表、字段)和数据管理(记录增删改查)。适用场景:(1) 管理智能表格子表和字段/列 (2) 查询、添加、更新、删除智能表格记录。支持通过 docid 或文档 URL 定位文档。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "wecomcli-todo",
|
||||||
|
"path": "skills/wecomcli-todo",
|
||||||
|
"i18n": {
|
||||||
|
"zh-CN": {
|
||||||
|
"shortDesc": "企业微信待办事项管理技能,支持查询待办列表、获取待办详情、创建待办、更新待办、删除待办及变更用户处理进度状态。在用户说\"看看我的待办列表\"、\"我有哪些待办\"、\"帮我创建一个待办\"、\"把这个任务分派给张三\"、\"标记待办完成\"、\"删掉那个待办\"、\"帮我建个提醒\"、\"更新一下待办内容\"、\"把提醒时间改到下周\"、\"接受这个待办…"
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"shortDesc": "企业微信待办事项管理技能,支持查询待办列表、获取待办详情、创建待办、更新待办、删除待办及变更用户处理进度状态。在用户说\"看看我的待办列表\"、\"我有哪些待办\"、\"帮我创建一个待办\"、\"把这个任务分派给张三\"、\"标记待办完成\"、\"删掉那个待办\"、\"帮我建个提醒\"、\"更新一下待办内容\"、\"把提醒时间改到下周\"、\"接受这个待办…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user