Reusable AI agent skill definitions compatible with opencode, Claude Code, and OpenAI Codex.
| Skill | Description |
|---|---|
| author-contrib-review | Analyze Git commit history for one or more authors |
| branch-diff-review | Review branch/tag diffs for bugs, optimizations, and missed changes |
| commit-message-gen | Generate structured Git commit messages from staged/unstaged diffs |
| context-mirror | Deep module analysis: call chain, class hierarchy, NVTE gap comparison |
| pre-commit-review | Pre-commit diff review: bug check, optimization, missed modifications |
| commit | Emoji commit with CHANGELOG [Unreleased] management |
| release | Bump version, tag, and update CHANGELOG for releases |
Each agent discovers skills automatically from their respective project directories:
| Tool | Directory |
|---|---|
| opencode | .opencode/skills/<name>/SKILL.md |
| Claude Code | .claude/skills/<name>/SKILL.md |
| OpenAI Codex | .agents/skills/<name>/SKILL.md |
python skill-export.py # export to all three tools
python skill-export.py -t claude codex # export to specific tools
python skill-export.py -t opencode -m symlink # use symbolic links
python skill-export.py -f # overwrite existing filesOptions:
| Flag | Default | Description |
|---|---|---|
-t / --target |
all three | Tools: opencode, claude, codex |
-o / --output-dir |
. |
Output root directory |
-s / --source-dir |
. |
Scan directory for SKILL.md files |
-m / --mode |
copy |
copy, symlink, or hardlink |
-f / --force |
— | Overwrite existing files |
skills/
├── LICENSE
├── <skill-name>/
│ └── SKILL.md # skill definition (YAML frontmatter + markdown body)
├── github_workflow/
│ ├── commit/SKILL.md
│ ├── generic_release/SKILL.md
│ ├── python_release/SKILL.md
│ └── rust_release/SKILL.md
├── skill-export.py # export script
└── README.md
Each SKILL.md uses standard YAML frontmatter with name and description (required), plus optional fields like license, compatibility, and metadata. All skills declare compatibility: opencode, claude, codex in their frontmatter.
Skills are loadable by all three tools with zero modifications — all read the same <name>/SKILL.md structure. Use skill-export.py to deploy them to the appropriate directory for each tool.