一键导入
create-syner-skill
Create skills for the syner ecosystem. Scaffolds the file, sets up symlinks, and iterates until the skill works when invoked.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create skills for the syner ecosystem. Scaffolds the file, sets up symlinks, and iterates until the skill works when invoked.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | create-syner-skill |
| description | Create skills for the syner ecosystem. Scaffolds the file, sets up symlinks, and iterates until the skill works when invoked. |
| metadata | {"author":"syner","version":"0.1.0","agent":"dev"} |
| allowed-tools | ["Read","Glob","Write","Bash"] |
Create skills for the syner ecosystem. Skills are invoked with /name and extend agent capabilities.
Start writing the skill file IMMEDIATELY. Don't wait for all info. User should NEVER have to say "ve escribiendo".
Get expected output FIRST, then compare actual vs expected.
When testing, check that the skill's actual behavior matches what the instructions say it should do. Discrepancies = bugs.
Skills should describe how to think, not what fields to fill. A skill with fixed headers and bullet counts produces generic output regardless of context.
The evolution (learned from save-bookmark):
The test: If you swap the input and the body still makes sense, the skill wrote a template. If you remove the user's context and the body still reads fine, the skill didn't personalize. Both mean: rewrite the skill instructions.
When scaffolding: prefer "## How to Think" over "## Output" with a fixed format. The output section should describe qualities (honest, connected to context, specific) not structure (3-5 bullets, H2 for Why, H2 for Takeaways).
Skills are invoked with /name, not read and followed.
// CORRECT - user invokes the skill
/my-skill [args]
// WRONG - read skill file and do the work yourself
Read("apps/dev/skills/my-skill/SKILL.md")
// then manually follow the instructions
The skill file defines behavior for when the skill is invoked, not instructions for the model to follow manually.
If user mentions they have output/example/reference:
Ask for it BEFORE writing. That output is the golden reference.
User: "tengo el output del agente que lo logró"
You: "Comparte el output, lo uso como referencia para el skill"
Don't skip this. Writing without the golden = guessing.
While user talks:
apps/*/skills/*/SKILL.mdDO NOT ask a questionnaire. Listen, search, write.
| Scope | Location |
|---|---|
| App-specific | apps/{app}/skills/{name}/SKILL.md |
| Shared | skills/{name}/SKILL.md |
Ask only if unclear: "Is this skill specific to an app or shared?"
The frontmatter is fixed. Everything below it depends on what the skill needs.
---
name: {name}
description: {what it does — in terms of value, not trigger phrases}
metadata:
author: syner
version: "0.0.1"
agent: {app}
allowed-tools:
- {tools the skill actually uses}
---
Below the frontmatter, write what the skill needs. Some skills need step-by-step processes. Others need a thinking framework. Don't default to numbered steps if the skill is about judgment.
Always include:
Include only if the skill needs it:
Avoid:
The description field explains what the skill does and when it's useful. Write it as a sentence a human would say, not a list of trigger phrases.
# Good - describes value and context
description: Save a URL as a markdown bookmark that connects to what you're building and thinking about.
# Bad - regex trigger list
description: Save URLs. Use when "save bookmark", "guardar link", "bookmark this", "save this url".
# Bad - vague
description: Creates skills.
# Bad - first person creates identity confusion
## What I Do
I analyze the code and find bugs.
# Good - imperative, clear instructions
## Process
Analyze the code for bugs. Report findings in a table.
If skill needs tools, declare in frontmatter:
---
name: my-skill
allowed-tools:
- Read
- Glob
- Grep
- Bash
---
Common combinations:
| Need | Tools |
|---|---|
| Read files | Read, Glob, Grep |
| Write files | + Write |
| Edit files | + Edit |
| System commands | + Bash |
| Delegation | + Task, + Skill |
Verify: If instructions say "write X" → needs Write. If "run command" → needs Bash.
One-shot is the exception, not the rule. Plan for multiple iterations.
1. User provides expected output (golden)
2. Invoke skill with /name
3. Compare actual vs golden
4. If mismatch: check if instructions match expected behavior
5. Fix instructions OR fix expectations
6. Repeat until match
Normal flow:
Critical: Always work with raw output, never summaries.
SKILL.md (uppercase)name, description, metadata.versionallowed-tools, license, compatibility, metadata.*metadata: agent, context, skills| Anti-Pattern | Fix |
|---|---|
| First-person voice ("I will...") | Imperative ("Analyze the...") |
| Description as regex trigger list | Describe value in a human sentence |
| Fixed output template with placeholders | Describe output qualities, not structure |
| Numbered bullet counts ("3-5 bullets") | Let content decide length |
| "ONLY return X" but returns extra | Add "No explanation, no commentary" |
| Tools used but not declared | Add to frontmatter |
| No testing section | Add test cases |
| Headings like "What I Do" | Use "Process" or "How to Think" |
When skill needs to read multiple files, design for parallel:
## Process
1. Discover files with Glob
2. Read ALL files in parallel (single response, multiple Read calls)
3. Process results
When referencing other skills, use the name not the path:
# Good
Self-execute using the execution contract.
# Bad
Read another skill's SKILL.md and follow instructions inline.
After creating, skill needs symlink to .claude/skills/:
Run from project root (symlinks use relative paths):
ln -s apps/{app}/skills/{name} .claude/skills/{name}
Or for shared skills:
Run from project root (symlinks use relative paths):
ln -s skills/{name} .claude/skills/{name}
Validate against /syner-boundaries:
Developer portal and SDK for the Syner ecosystem. Hosts skill registry, documentation, and agent scaffolding tools.
Slack integration agent — receives messages, routes through orchestrator, delivers results
Orchestrate the ideas system. Mine vaults for ideas, analyze maturity, and route to the right skill or agent. The entry point for idea discovery that connects find-links, grow-note, track-idea, and cross-app routing.
Load your full life + work state. Discovers and reads all notes across all app vaults, building a unified context of your knowledge, projects, goals, and current thinking. Use when starting a new session or when you need the AI to understand your complete situation.
Improve an existing skill by auditing and applying fixes. Use when asked to "enhance skill", "improve skill", "fix skill issues", or when code-reviewer detects skill file changes. Delegates to syner-skill-reviewer for audit, then proposes and applies fixes with user confirmation.
Review skills for quality, safety, and convention compliance. Dev's quality gate before skills go live — checks voice, injection risks, technical patterns, and ecosystem consistency.