with one click
adding-error-codes
Use when adding new diagnostic error codes to the compiler
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Use when adding new diagnostic error codes to the compiler
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Automated performance optimization loop. Generates large benchmark workloads with vole-stress, profiles with perf, identifies hotspots in our code, fixes them, verifies improvement, repeats.
Automated bug-hunting loop using vole-stress + vole-reduce. Generates random codebases, tests them, reduces failures, fixes bugs, verifies, and repeats.
Use when you are asked to implement tickets (tasks/epics) created in `tk`
Incremental Rust code quality loop. Scans the compiler codebase for one refactoring opportunity per round — duplicated logic, poor factoring, mechanical lint fixes — applies it, verifies, and repeats.
Use when you have a design or requirements and need to create tickets (epics/tasks) for implementation
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
| name | adding-error-codes |
| description | Use when adding new diagnostic error codes to the compiler |
Vole uses structured error codes: E0xxx (lexer), E1xxx (parser), E2xxx (semantic).
Get next available code:
just dev next-error sema # For semantic errors (E2xxx)
just dev next-error parser # For parser errors (E1xxx)
just dev next-error lexer # For lexer errors (E0xxx)
List existing errors (for reference):
just dev list-errors sema
just dev list-errors parser
just dev list-errors all # All categories
Add error variant to the appropriate file:
| Error Type | File |
|---|---|
| Lexer | src/crates/vole-frontend/src/errors/lexer.rs |
| Parser | src/crates/vole-frontend/src/errors/parser.rs |
| Semantic | src/crates/vole-sema/src/errors/mod.rs |
Emit the error in the relevant analyzer/parser code:
| Error Type | Emission Location |
|---|---|
| Lexer | src/crates/vole-frontend/src/lexer.rs |
| Parser | src/crates/vole-frontend/src/parser/*.rs |
| Semantic | src/crates/vole-sema/src/analyzer/**/*.rs |
Sema errors use self.add_error(SemanticError::Variant { span }, span).
Add snapshot test for error message:
test/snapshot/check/sema/your_error.vole with code that triggers the errorcargo run -p vole-snap -- bless test/snapshot/check/sema/your_error.voleVerify:
just pre-commit