codegen-sync
Verifies TypeScript codegen is in sync with Elixir protocol definitions. Use this skill after modifying Elixir structs, protocol messages, or RPC types in lib/opal/ to regenerate and verify the TypeScript client SDK types.
Best use case
codegen-sync is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Verifies TypeScript codegen is in sync with Elixir protocol definitions. Use this skill after modifying Elixir structs, protocol messages, or RPC types in lib/opal/ to regenerate and verify the TypeScript client SDK types.
Teams using codegen-sync should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/codegen-sync/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How codegen-sync Compares
| Feature / Agent | codegen-sync | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Verifies TypeScript codegen is in sync with Elixir protocol definitions. Use this skill after modifying Elixir structs, protocol messages, or RPC types in lib/opal/ to regenerate and verify the TypeScript client SDK types.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Codegen Sync Skill This project uses code generation to keep TypeScript SDK types in sync with Elixir protocol definitions. When Elixir types change, the TypeScript side must be regenerated. ## When to act - After modifying any Elixir structs, message types, or RPC definitions in `lib/opal/`. - After adding or changing tool schemas in `lib/opal/tool/`. - When CI fails with a codegen drift error. - When the user asks to sync or regenerate types. ## Commands ```bash # Run codegen (Elixir -> TypeScript) mix run scripts/codegen_ts.exs # Verify codegen is up to date (what CI runs) mix run scripts/codegen_ts.exs --check ``` ## Workflow 1. After modifying Elixir protocol types, run `mix run scripts/codegen_ts.exs`. 2. Review the generated diff in `cli/src/sdk/` to verify correctness. 3. Include the regenerated files in the same commit as the Elixir changes. ## Rules 1. **Never hand-edit generated files.** Always regenerate from the Elixir source. 2. If codegen output looks wrong, fix the Elixir definitions or the codegen script (`scripts/codegen_ts.exs`), not the output. 3. Always commit codegen output alongside the source changes — never in a separate commit.
Related Skills
memory-sync
Guided workflow for maintaining strategic redundancy between Serena memories and project documentation. Use after significant code changes, phase completions, or when new architectural patterns are discovered.
heir-sync-management
Master-Heir synchronization, contamination prevention, and promotion workflows
asyncredux-connector-pattern
Implement the Connector pattern for separating smart and dumb widgets. Covers creating StoreConnector widgets, implementing VmFactory and Vm classes, building view-models, and optimizing rebuilds with view-model equality.
Asyncio Programming
Master asynchronous programming with asyncio, async/await, concurrent operations, and async frameworks
asyncio-concurrency-patterns
Complete guide for asyncio concurrency patterns including event loops, coroutines, tasks, futures, async context managers, and performance optimization
asynchronous
Master asynchronous JavaScript patterns including callbacks, promises, async/await, event loop mechanics, and real-world async patterns.
async-runner
Run background agents and bash commands asynchronously for CircleTel development. Use when running dev servers, parallel tests, long builds, or multi-agent research tasks without blocking the main workflow.
async-python-patterns
Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.
async-programming
Concurrent operations with asyncio and Tokio, focusing on race condition prevention, resource safety, and performance
async-programming-skill
This skill provides async/await patterns and best practices for concurrent programming
async-patterns-guide
Guides users on modern async patterns including native async fn in traits, async closures, and avoiding async-trait when possible. Activates when users work with async code.
async-expert
Expert in asynchronous programming patterns across languages (Python asyncio, JavaScript/TypeScript promises, C# async/await, Rust futures). Use for concurrent programming, event loops, async patterns, error handling, backpressure, cancellation, and performance optimization in async systems.