Token导航 LogoToken导航TokenDH.com
前端设计执行命令github未标认证来源可访问许可证需确认审计提醒

create-seed-skill创造种子技能

Agent Skill

create-seed-skill 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

667

周安装

27

GitHub Stars

24

下载量

210
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:create-seed-skill(创造种子技能)
来源仓库:https://github.com/youdotcom-oss/agent-skills
仓库路径:skills/create-seed-skill
安装命令:
npx skills add https://github.com/youdotcom-oss/agent-skills --skill create-seed-skill
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/youdotcom-oss/agent-skills --skill create-seed-skill

简介

create-seed-skill 用于构建可测试的集成技能脚手架,适合需要封装 SDK 或框架并生成真实 API 调用代码的场景。

  • 适用于 Codex、Claude、Cursor、Gemini CLI 等宿主环境,支持从零开始搭建带测试能力的集成型技能。
  • 通过 SKILL.md、参考资源和 prompts.jsonl 文件组合教学 Agent 实现具体功能,需结合项目实际 API 和测试要求使用。
  • 安装前请确认权限范围、维护状态及是否涉及联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Create a Seed Skill

Scaffold an integration-type skill from scratch. A seed skill is SKILL.md + reference assets + prompts.jsonl entries that together teach an agent to sprout a working, testable integration.

When to Use This

Integration skills (use this skill):

  • Wrapping an SDK or framework with code generation + real API tests
  • The eval question is: "Did the agent write code that calls real APIs and passes tests?"
  • Examples: ydc-ai-sdk-integration, teams-anthropic-integration

Tool skills (do NOT use this skill):

  • CLI wrappers where the agent runs a command, not writes code
  • No test directory, no generated files
  • Examples: youdotcom-cli

Decision Point

Ask the developer first:

Is this an integration skill (the agent generates code + tests) or a tool skill (the agent runs a CLI command)?
  • Integration → Continue with this workflow
  • Tool → Stop. This skill is not needed for tool skills.

Workflow

Step 1 — Gather Information

Ask these questions all at once (do not ask one by one):

  1. Skill name: What should it be called? (lowercase, hyphens, e.g. my-sdk-integration)
  2. Package(s): What npm/pip package(s) does it wrap? Include exact package names.
  3. Language(s): TypeScript, Python, or both?

- Both means: separate asset files for each language, two prompts.jsonl entries (one -typescript, one -python), and two tests/ directories (tests/<skill-name>-typescript/ and tests/<skill-name>-python/), each with a .gitkeep file. - One language means: one set of assets, one prompts.jsonl entry, one tests/<skill-name>/ directory with a .gitkeep file.

  1. Path A (basic): What is the simplest working integration — one function, one API call?
  2. Path B (extended): What is the natural extension — MCP, streaming, tool filtering, etc.?
  3. Required env vars: Which API keys are required? (e.g. MY_API_KEY, OPENAI_API_KEY)
  4. Test query: What is a factual question with a deterministic, multi-keyword answer that the integration should be able to answer? (See Choosing a Test Query)

Step 2 — Read Reference Assets

Before writing any code, read the reference assets to understand the required structure:

Step 3 — Create Files

Create all files in one pass. The skill lives in skills/<skill-name>/.

Directory layout:

skills/<skill-name>/
├── SKILL.md
└── assets/
    # TypeScript:
    ├── path-a-<variant>.ts       # Path A integration
    ├── path-b-<variant>.ts       # Path B integration (if applicable)
    ├── integration.spec.ts       # Bun test file
    # Python:
    ├── path_a_<variant>.py       # Path A integration
    ├── path_b_<variant>.py       # Path B integration (if applicable)
    ├── test_integration.py       # pytest file
    └── pyproject.toml            # Python project config (required for uv run pytest)

# Also create (see below):
tests/<skill-name>/               # single language
└── .gitkeep
# — or for both languages —
tests/<skill-name>-typescript/
└── .gitkeep
tests/<skill-name>-python/
└── .gitkeep

Also create the tests/ eval target directory (or directories) with a .gitkeep file so the directory exists in git before agents write to it:

  • Single language: tests/<skill-name>/.gitkeep
  • Both languages: tests/<skill-name>-typescript/.gitkeep and tests/<skill-name>-python/.gitkeep
# Single language (adjust path as needed):
mkdir -p tests/<skill-name> && touch tests/<skill-name>/.gitkeep

# Both languages:
mkdir -p tests/<skill-name>-typescript tests/<skill-name>-python
touch tests/<skill-name>-typescript/.gitkeep tests/<skill-name>-python/.gitkeep

Step 4 — Add prompts.jsonl Entry

Append one entry per language to data/prompts/prompts.jsonl.

Single language template (pick one concrete example — do NOT leave TypeScript or Python as a placeholder):

TypeScript:

{"id":"<skill-name>","input":["Using the <skill-name> skill, create a working TypeScript <description of Path A> integration. Write flat minimal code with no comments or TSDoc. Write integration tests that call real APIs and assert on meaningful response content. Save everything to the tests/<skill-name> directory.","Extend the integration with <description of Path B>. Write flat minimal code with no comments or TSDoc. Update the integration tests to verify the extended integration also works with a live query."],"metadata":{"cwd":"tests/<skill-name>","language":"typescript"}}

Python:

{"id":"<skill-name>","input":["Using the <skill-name> skill, create a working Python <description of Path A> integration. Write flat minimal code with no comments or docstrings. Write integration tests that call real APIs and assert on meaningful response content. Save everything to the tests/<skill-name> directory.","Extend the integration with <description of Path B>. Write flat minimal code with no comments or docstrings. Update the integration tests to verify the extended integration also works with a live query."],"metadata":{"cwd":"tests/<skill-name>","language":"python"}}

Both languages — append TWO entries:

{"id":"<skill-name>-typescript","input":["Using the <skill-name> skill, create a working TypeScript <description of Path A> integration. Write flat minimal code with no comments or TSDoc. Write integration tests that call real APIs and assert on meaningful response content. Save everything to the tests/<skill-name>-typescript directory.","Extend the integration with <description of Path B>. Write flat minimal code with no comments or TSDoc. Update the integration tests to verify the extended integration also works with a live query."],"metadata":{"cwd":"tests/<skill-name>-typescript","language":"typescript"}}
{"id":"<skill-name>-python","input":["Using the <skill-name> skill, create a working Python <description of Path A> integration. Write flat minimal code with no comments or docstrings. Write integration tests that call real APIs and assert on meaningful response content. Save everything to the tests/<skill-name>-python directory.","Extend the integration with <description of Path B>. Write flat minimal code with no comments or docstrings. Update the integration tests to verify the extended integration also works with a live query."],"metadata":{"cwd":"tests/<skill-name>-python","language":"python"}}

Rules for prompts:

  • Exactly 2 turns per entry
  • Name the language explicitly in Turn 1 ("TypeScript" or "Python") so the agent doesn't guess
  • Describe outcomes only — never mention class names, method names, or config keys
  • Turn 1: basic integration + tests
  • Turn 2: extension + update tests
  • metadata.cwd must match the tests/ directory created in Step 3 (the grader reads files from here)
  • metadata.language must be typescript or python

Step 5 — Create Symlink

ln -s ../../skills/<skill-name> .claude/skills/<skill-name>

Step 6 — Validate

bunx @plaited/development-skills validate-skill skills/<skill-name>

What Makes a Good Seed Skill

SKILL.md Must Contain

  1. Correct frontmattername, description, license, compatibility, allowed-tools, assets list, metadata
  2. Decision point — brief Path A vs Path B description, one clear question
  3. Install instructions — exact package name and install command
  4. Complete code templates — full working examples, not pseudo-code
  5. Security section — if the integration fetches untrusted web content, include prompt injection warning (W011)
  6. Generate Integration Tests section — markdown links to all asset files, explicit rules

Generate Integration Tests Rules (include all of these)

**Rules:**
- No mocks — call real APIs
- Assert on keywords from a deterministic query, not just `length > 0`
- Validate required env vars at test start (inside the test function, not at module scope)
- TypeScript: use `bun:test`, dynamic imports inside tests, `timeout: 60_000`
- Python: use `pytest`, import inside test function; always include `pyproject.toml` with `pytest` in `[dependency-groups] dev`
- Run TypeScript tests: `bun test` | Run Python tests: `uv run pytest`

Reference Assets Must

  • Compile and run — no pseudo-code, no placeholders
  • Include security instructions in agent instructions/system_prompt
  • Use the test query from Step 1 in both the integration files (as the __main__ example) and the test assertions
  • Assert on keywords — not just length > 0
  • TypeScript: export a callable function, use dynamic import() in tests
  • Python: define a main(query: str) -> str function, use deferred imports inside test functions

Choosing a Test Query

The real goal: verify the integration code ran, not that the LLM knows the answer.

Most LLMs can answer factual questions from memory without calling any tool. A query the model can answer without searching doesn't prove the MCP server or SDK tool was invoked — the integration may silently skip the tool and still pass.

What actually matters: the test passes only if the *code path* worked — the SDK was initialized, the MCP server was reached, and a response was returned. A keyword assertion that matches typical tool output is better than no assertion, but it doesn't prove the tool fired.

Practical guidance:

  • Prefix the query with an explicit instruction to use the tool — this forces invocation rather than relying on the model's judgment
  • Use a query with a stable, multi-keyword answer so you can assert on content, not just length > 0
  • The LLM-as-judge grader (scripts/grader.ts) also evaluates the generated code structure, not just whether keywords appear

Good examples (explicit tool instruction + stable keywords):

  • "Search the web for the three branches of the US government" → assert legislative, executive, judicial
  • "Use web search to find what programming language TypeScript compiles to" → assert javascript
  • "Search the web for the four classical elements" → assert earth, water, fire, air

The "Search the web for..." or "Use [tool name] to find..." prefix makes tool use an explicit instruction, not an inference — the model must call the tool to follow the prompt.

Avoid:

  • Plain factual queries ("What are the three branches...") — model may answer from memory, skipping the tool entirely
  • "What is the latest news in AI?" — changes daily, no predictable keywords
  • "Say hello in one sentence." — no meaningful content assertion possible

Eval Grader Notes

The grader (scripts/grader.ts) runs from metadata.cwd:

  • TypeScript: runs bun test, scans **/*.{ts,js} for generated files
  • Python: runs uv run pytest (requires pyproject.toml in the test dir)
  • Sends test output + generated file contents to Haiku for LLM-as-judge scoring (0.0–1.0)
  • Pass threshold is ~0.65; target is 0.95

Common failure modes to prevent in your SKILL.md:

  • pytest missing: Always include pyproject.toml asset with pytest in dev deps
  • Module-scope env checks: Python imports should be inside test functions to avoid collection errors
  • Prescriptive prompts: prompts.jsonl should describe outcomes, not implementation steps
  • Tool introspection: Never instruct agents to assert on SDK event streams or tool call objects
  • open-ended test queries: "latest AI news" produces unpredictable content — use factual queries with deterministic keywords

Example: Adding a New Python Integration Skill

Given: wrapping the httpx library with You.com search, Python only.

Files to create:

skills/ydc-httpx-integration/
├── SKILL.md
└── assets/
    ├── path_a_basic.py
    ├── test_integration.py
    └── pyproject.toml

tests/ydc-httpx-integration/
└── .gitkeep

Create the tests directory:

mkdir -p tests/ydc-httpx-integration && touch tests/ydc-httpx-integration/.gitkeep

prompts.jsonl entry:

{"id":"ydc-httpx-integration","input":["Using the ydc-httpx-integration skill, create a working Python application that calls the You.com search API directly with httpx and returns search results. Write integration tests that call the real API and verify the response contains expected keywords. Save everything to the tests/ydc-httpx-integration directory.","Extend the integration to also support content extraction from URLs. Update the integration tests to verify both search and content extraction work with live queries."],"metadata":{"cwd":"tests/ydc-httpx-integration","language":"python"}}

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.16%
按下载量换算68

Claude

31.28%
按下载量换算66

Cursor

17.58%
按下载量换算37

Gemini CLI

9.25%
按下载量换算19

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

可疑

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/youdotcom-oss/agent-skills --skill create-seed-skill 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills