Agent Skills

Lua development guidelines covering tables, metatables, error handling, game development, and performance optimization.

Install

npx skills add https://github.com/mindrally/skills --skill lua
SKILL.md

Lua Development

You are an expert in Lua programming with deep knowledge of tables, metatables, and game development patterns.

Core Principles

  • Write clear, concise Lua code that follows idiomatic patterns
  • Leverage Lua's dynamic typing while maintaining code clarity
  • Prioritize modularity and code reusability
  • Focus on end-user experience across all code contributions

Lua-Specific Practices

  • Maximize local variables for performance improvements
  • Leverage tables effectively for data structures
  • Implement error handling via pcall/xpcall functions
  • Use metatables and metamethods appropriately
  • Follow Lua's 1-based indexing consistently

Naming Conventions

  • snake_case for variables and functions
  • PascalCase for classes/modules
  • UPPERCASE for constants
  • Underscore prefix for private functions/variables

Code Organization

  • Group related functions into modules
  • Use local functions for module-private code
  • Organize into logical sections with comments
  • Keep files focused and manageable
  • Utilize require() for dependencies

Error Handling

  • Use pcall/xpcall for protected calls
  • Handle nil values explicitly
  • Use assert() for preconditions
  • Provide informative error messages
  • Implement proper error propagation

Performance Optimization

  • Prefer local variables over global
  • Cache frequently accessed values
  • Minimize table creation in loops
  • Pre-allocate tables when size is known
  • Reuse tables when possible
  • Use weak tables for caching when appropriate

Memory Management

  • Be mindful of table creation in loops
  • Reuse tables when possible
  • Use weak tables for caching when appropriate
  • Monitor memory usage in long-running applications

Metatables and OOP

  • Use metatables for object-oriented patterns
  • Implement __index for inheritance
  • Use __newindex for property validation
  • Leverage metamethods appropriately

Game Development

  • Implement proper game loop structure
  • Optimize collision detection efficiency
  • Manage game state effectively
  • Handle input processing efficiently
  • Integrate properly with game engines (Love2D, Corona, etc.)

Testing and Documentation

  • Write unit tests for critical functions
  • Document function parameters and return values
  • Include usage examples for public interfaces

Related skills

typescript-advanced-typeswshobson81KMaster TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.golang-code-stylesamber43KGolang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See `samber/cc-skills-golang@golang-naming` skill), linter configuration (→ See `samber/cc-skills-golang@golang-lint` skill), or doc comments (→ See `samber/cc-skills-golang@golang-documentation` skill).golang-error-handlingsamber42KIdiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log aggregation 3rd-party tools. Apply when creating, wrapping, inspecting, or logging errors in Go code. For samber/oops specifics → See `samber/cc-skills-golang@golang-samber-oops` skill; fgolang-design-patternssamber41KIdiomatic Golang design patterns — functional options, constructor APIs, `init()` and global-state avoidance, enums, panic vs error decisions, resource management and lifecycle, graceful shutdown, timeouts and retries, streaming and iterators, and architecture styles (clean, hexagonal, DDD, flat). Apply when choosing between architectural patterns, implementing functional options, designing constructor APIs, setting up graceful shutdown, applying resilience patterns, or asking which idiomatic Go

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers