用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tools-only/X-Skills --skill skill-name-here命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Index of Build Systems Skills
Coordination patterns for distributed dataflow systems including barriers, epochs, and distributed snapshots
Windowing, sessionization, time-series aggregation, and late data handling for streaming systems
基于 SOC 职业分类
正在显示 SKILL.md
| description | Add a skill to the project with validation and README generation |
| argument-hint | <source-path> |
Copy a skill from a source path to the project, verify naming consistency, and generate README.md if missing.
/add-skill <source-path>
Arguments:
<source-path> - Path to the skill directory to add (required)Examples:
/add-skill ~/.claude/skills/my-skill
/add-skill ~/workspace/other-project/skills/awesome-skill
/add-skill /home/leo/workspace/softaworks/projects/claude-plugins/plugins/planning/skills/spec-interview
Check that the source path exists and is a directory:
if [ -d "<source-path>" ]; then
echo "Source path exists"
else
echo "Error: Source path does not exist or is not a directory"
exit 1
fi
If source path is invalid, stop and report the error to the user.
Get the skill name from the source path (basename of the directory):
basename <source-path>
Example: /path/to/my-skill → my-skill
Store this as the skill name for the rest of the workflow.
Copy the entire skill directory to skills/:
cp -r <source-path> skills/
Report to user: "✅ Copied skill to skills/[skill-name]"
Check that the folder name follows kebab-case convention:
Regex pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
Use Bash to check:
skill_name="[skill-name]"
if [[ $skill_name =~ ^[a-z0-9]+(-[a-z0-9]+)*$ ]]; then
echo "Folder name is valid kebab-case"
else
echo "Warning: Folder name is not kebab-case"
fi
If invalid, warn the user but continue (we'll check SKILL.md next).
Check for SKILL.md in the copied skill directory:
ls skills/[skill-name]/SKILL.md
If SKILL.md doesn't exist:
If SKILL.md exists, read it with the Read tool to extract the frontmatter.
Extract the name: field from frontmatter:
The frontmatter is between the first two --- markers:
---
name: skill-name-here
description: ...
---
Parse the YAML and extract the value of the name: field.
Compare:
[skill-name] (from basename)[name-from-frontmatter]Check 1: Both are kebab-case
Both should match the regex: ^[a-z0-9]+(-[a-z0-9]+)*$
If either is not kebab-case:
Check 2: Folder name matches name field
If folder-name != name-from-frontmatter:
Ask user for fix:
If there's a mismatch or non-kebab-case naming, ask:
"Would you like me to fix the naming inconsistency? I can:
Based on user choice:
mv to rename the folderReport the action taken.
Check if README.md exists in the skill directory:
ls skills/[skill-name]/README.md
If README.md exists:
If README.md does NOT exist:
Use the Task tool to spawn a general-purpose sub-agent with this prompt:
For the skill at /home/leo/workspace/softaworks/projects/agent-skills/skills/[skill-name]:
1. Read the SKILL.md file completely
2. Analyze what the skill does, how it works, and when to use it
3. Create a comprehensive README.md that explains:
- **Purpose**: What the skill does and why it exists
- **When to Use**: Specific scenarios and trigger phrases
- **How It Works**: Step-by-step explanation of the workflow
- **Key Features**: Main capabilities and highlights
- **Usage Examples**: Practical examples showing how to use it
- **Prerequisites** (if any): Required tools, dependencies, or setup
- **Output** (if applicable): What the skill produces
- **Best Practices** (if applicable): Tips for getting the best results
The README should be user-friendly, comprehensive, and help users understand the skill's purpose and functionality in detail.
Write the README.md to: skills/[skill-name]/README.md
Agent parameters:
subagent_type: "general-purpose"description: "Create README for [skill-name]"Wait for the agent to complete, then report success.
Add a new plugin entry to .claude-plugin/marketplace.json for the new skill.
Read the marketplace.json file to get current plugins array.
Ask user for category using AskUserQuestion:
"Which category does this skill belong to?"
Options:
Create the plugin entry:
{
"name": "[skill-name]",
"description": "[description from SKILL.md frontmatter]",
"source": "./",
"strict": false,
"skills": ["./skills/[skill-name]"],
"category": "[selected-category]",
"keywords": ["[category]", "[relevant]", "[tags]"]
}
Insert the plugin entry into the plugins array in marketplace.json, keeping entries grouped by category.
Use the Edit tool to add the new entry before the agents section (after the last skill entry for the selected category, or at the end of skills if it's a new category).
Report: "✅ Added plugin entry to marketplace.json"
Update the "Available Skills" table in README.md to include the new skill.
Read README.md to find the Available Skills table.
Find the rows for the skill's category and add the new skill in the appropriate position.
For example, if adding a skill to "🤖 AI Tools" category:
| 🤖 AI Tools | [new-skill](skills/new-skill/README.md) | Description here |
Use the Edit tool to add the new row in the correct category section.
Report: "✅ Updated Available Skills table in README.md"
After all steps are complete, report to the user:
✅ Skill '[skill-name]' added successfully!
📋 Summary:
- Source: <source-path>
- Destination: skills/[skill-name]
- SKILL.md: ✅ Valid
- Naming: [✅ Consistent / ⚠️ Fixed / ⚠️ Inconsistent]
- README.md: [✅ Exists / 📝 Created]
- marketplace.json: ✅ Plugin entry added
- Available Skills table: ✅ Updated
Next steps:
1. Review the skill at skills/[skill-name]
2. Commit the changes
Source path doesn't exist:
Source path is not a directory:
No SKILL.md in source:
SKILL.md has no frontmatter:
Naming mismatch detected:
README.md creation fails: