بنقرة واحدة
create-skill
// Use when asked to create, generate, or scaffold a new Agent Skill. Don't use for modifying existing skills or writing general documentation.
// Use when asked to create, generate, or scaffold a new Agent Skill. Don't use for modifying existing skills or writing general documentation.
Use when bootstrapping the design of a brand new project — producing a plan.md through iterative exploration. Don't use for modifying existing plans, implementing features, or working with established codebases.
Use when creating or modifying custom opencode commands in the `commands/` directory. Covers markdown command files, frontmatter options (description, agent, model, subtask), prompt templates with $ARGUMENTS, shell output injection, and file references.
Use when creating a new Python project from Rob's Awesome Python Template (cookiecutter). Don't use for adding Python to existing projects, installing packages, or working with established codebases.
Use when doing a thorough exploration of an existing codebase. Guides a subagent through reading documentation, reviewing tests, analyzing architecture, and producing a comprehensive overview. Don't use for quick lookups or single-file questions.
All actions on GitHub must use this skill. Covers pull requests, issues, repositories, releases, GitHub Actions, searches, and API requests via the `gh` CLI.
Use when creating, modifying, or reviewing GitHub Actions workflow files. Covers workflow syntax, action selection, dependabot configuration, and CI/CD best practices.
| name | create-skill |
| description | Use when asked to create, generate, or scaffold a new Agent Skill. Don't use for modifying existing skills or writing general documentation. |
| license | MIT |
| metadata | {"author":"Robert Hafner","source":"https://github.com/tedivm/opencode-config"} |
processing-pdfs, analyzing-data, testing-code^[a-z0-9]+(-[a-z0-9]+)*$ (1-64 chars, lowercase, hyphens as separators only, no leading/trailing/consecutive hyphens)helper, utils, tools) and reserved words (anthropic, claude)Always place skills in ./.agents/skills/<name>/:
mkdir -p ./.agents/skills/<name>/
Required fields:
name — must match directory namedescription — 1-1024 chars, written in third person, specific enough for correct activationOptional fields:
license — license name or reference to a bundled license filecompatibility — 1-500 chars, environment requirementsmetadata — arbitrary string-to-string key-value map (use author for the author name)Always add a source field under metadata pointing to the repository URL. Resolve it dynamically — do not hardcode:
git remote get-url origin to get the remote URLssh format (git@github.com:user/repo.git) to https (https://github.com/user/repo).git suffix if presentmetadata:\n source: <url> to the frontmatterDetermine author and license dynamically:
whoami to check the current usernametedivm:
license: MITmetadata.author: Robert HafnerGood: "Use when extracting text from PDFs, filling forms, or merging documents." Bad: "Extracts text and tables from PDF files, fills forms, and merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction."
references/ files.Match specificity to the task's fragility:
Don't offer too many options. Provide a default with an escape hatch:
Use pdfplumber for text extraction.
For scanned PDFs requiring OCR, use pdf2image with pytesseract instead.
## Quick start
[Brief overview with the most common use case]
## Workflow
[Step-by-step numbered instructions]
## Advanced features
[Links to reference files for less common features]
Use one of these patterns to organize content:
Pattern 1: High-level guide with references
## Quick start
[Core instructions inline]
## Advanced features
**Form filling**: See [FORMS.md](FORMS.md)
**API reference**: See [REFERENCE.md](REFERENCE.md)
Pattern 2: Domain-specific organization
## Available domains
**Finance**: Revenue, billing → See [reference/finance.md](reference/finance.md)
**Sales**: Pipeline, accounts → See [reference/sales.md](reference/sales.md)
Pattern 3: Conditional workflow
## Document modification
**Creating new content?** → Follow "Creation workflow" below
**Editing existing content?** → Follow "Editing workflow" below
For complex multi-step tasks, provide a checklist the agent can track:
Copy this checklist and check off items as you complete them:
Task Progress:
For quality-critical tasks, implement validate-fix-repeat cycles:
1. Make your edits
2. Validate: python scripts/validate.py input/
3. If validation fails, fix and re-run
4. Only proceed when validation passes
5. Rebuild: python scripts/build.py input/ output/
For output-dependent skills, provide input/output pairs:
## Commit message format
**Example 1:**
Input: Added user authentication with JWT tokens
Output: feat(auth): implement JWT-based authentication
Follow this style: type(scope): brief description.
For strict output requirements, provide exact templates:
## Report structure
ALWAYS use this exact template:
# [Title]
## Executive summary
[One paragraph]
## Key findings
- Finding with data
For flexible guidance, provide a default and allow adaptation.
skill-name/
├── SKILL.md # Required: metadata + core instructions (<500 lines)
├── scripts/ # Executable code as tiny CLIs
├── references/ # Supplementary context (schemas, cheatsheets)
└── assets/ # Templates or static files
reference/guide.mdform_validation_rules.md, not doc2.mdMany skills are wrappers around existing CLI tools (gh, rsync, jq, git, etc.). Before writing instructions, research the CLI thoroughly:
<tool> --help, <tool> <subcommand> --help) to discover available flags, subcommands, and usage patternsDon't bundle or reimplement these CLIs — assume they're available and provide installation instructions in a separate file.
references/installation_guide.mdbrew install jq, pip install pdfplumber, etc.)analyze_form.py" (execute) vs "See analyze_form.py" (read as reference)README.md, CHANGELOG.md, or other human-facing documentationTest the description in isolation with an LLM:
Simulate execution: feed the full SKILL.md to an LLM and ask it to walk through a representative task step by step, flagging any ambiguities or missing steps.
Ask an LLM to attack the skill's logic: what happens on failure, unsupported configurations, missing dependencies?
SKILL.md is spelled in all capsname and descriptionname matches directory namemetadata.source contains the resolved repository HTTPS URLlicense is set (MIT for tedivm)metadata.author is set (Robert Hafner for tedivm)