Ai-rules-sync new-adapter
Add support for a new AI tool with adapters, CLI, completion, and tests.
install
source · Clone the upstream repo
git clone https://github.com/lbb00/ai-rules-sync
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/lbb00/ai-rules-sync "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/new-adapter" ~/.claude/skills/lbb00-ai-rules-sync-new-adapter && rm -rf "$T"
manifest:
.claude/skills/new-adapter/SKILL.mdsource content
New Adapter
Instructions
Complete workflow for adding support for a new AI tool to AIS.
Prerequisites
Before starting, gather this information:
- Tool name (e.g., "windsurf", "mcp")
- Rule/config types supported (e.g., rules, commands, skills)
- Default source directory (e.g.,
).windsurf/rules/ - Target directory (usually same as source)
- File mode:
orfiledirectory
Steps
1. Create Adapter File
Create
src/adapters/<tool>-<type>.ts:
import { createBaseAdapter } from './base.js'; export const myToolAdapter = createBaseAdapter({ name: '<tool>-<type>', tool: '<tool>', subtype: '<type>', configPath: ['<tool>', '<type>'], defaultSourceDir: '.<tool>/<type>', targetDir: '.<tool>/<type>', mode: 'directory', // or 'file' });
2. Register Adapter
In
src/adapters/index.ts:
- Import the new adapter
- Register in
constructorDefaultAdapterRegistry
3. Update Project Config
In
src/project-config.ts:
- Add tool section to
interfaceProjectConfig - Add tool to
interface if neededSourceDirConfig
4. Wire CLI Commands
In
src/cli/register.ts:
- Add tool subcommand group
- Register add/remove/install/import commands
5. Update Completion
In
src/completion.ts:
- Add tool to completion types
- Add subtype completions
In
src/completion/scripts.ts:
- Update bash/zsh/fish completion scripts
6. Add Tests
Create
src/__tests__/<tool>-<type>.test.ts:
- Test adapter properties
- Test add/remove operations
- Test config path resolution
7. Update Documentation
- README.md: Add to supported sync types table
- README_ZH.md: Sync changes (use
)/sync-readme - CLAUDE.md: Update if architectural changes
8. Verify
# Build npm run build # Run tests npm test # Test manually node dist/index.js <tool> <type> add <name> node dist/index.js <tool> <type> remove <name>
Checklist
- Adapter file created
- Adapter registered
- ProjectConfig updated
- CLI commands wired
- Completion updated
- Tests written and passing
- README.md updated
- README_ZH.md synced
- Manual testing complete
Examples
Request: Add support for a new AI tool with rules and skills Result: Complete adapter implementation with tests passing