install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/update-tool-plugin" ~/.claude/skills/diegosouzapw-awesome-omni-skill-update-tool-plugin && rm -rf "$T"
manifest:
skills/tools/update-tool-plugin/SKILL.mdsource content
Update Tool Plugin
Guide for modifying an existing plugin to support new features or fix issues.
Before You Start
Search the official documentation for the target tool to understand:
- Has the configuration format changed?
- Are there new features to support?
- What is the expected output format?
Plugin Locations
All plugins are in
packages/core/src/plugins/:
- Claude Codeclaude-code/
- Cursor IDEcursor/
- GitHub Copilotcopilot/
- Windsurf IDEwindsurf/
- OpenCodeopencode/
- Gemini CLIgemini/
- Codexcodex/
Common Update Scenarios
Adding Support for a New Feature
- Search official docs for the feature's config format
- Update
method to generate new output filesexport() - Remove from
inskipped
if feature was previously skippedvalidate() - Add tests for the new export behavior
Fixing Transformation Issues
- Check
for transformation logictransforms.ts - Update transformation functions as needed
- Verify with tests that output matches expected format
Updating Output Format
- Review tool's official docs for current format requirements
- Update
to match new format requirementsexport() - Update tests to verify new output structure
Testing Changes
# Run plugin-specific tests pnpm test packages/core/src/plugins/<tool-name>/ # Run all tests pnpm test # Test against real project lnai sync --dry-run -t <tool-name>
Key Files to Review
| File | Purpose |
|---|---|
| Main plugin implementation |
| Tool-specific type definitions |
| Format transformation functions |
| Plugin interface definition |
| Shared transform utilities |
Validation Patterns
// Mark feature as skipped (not supported) skipped.push({ feature: "permissions", reason: "Tool uses global permissions only", }); // Add warning (supported but with caveats) warnings.push({ message: "MCP servers require manual setup", path: ["settings", "mcpServers"], });
After Making Changes
- Run
to verify typespnpm typecheck - Run
to verify tests passpnpm test - Run
to preview outputlnai sync --dry-run - Update documentation if behavior changed
Reference Documentation
- Existing plugins in
as examplespackages/core/src/plugins/ - The Plugin interface in
packages/core/src/plugins/types.ts - Transform utilities in
packages/core/src/utils/transforms.ts