crystal
Use when working on Crystal projects. Detected by the presence of a shard.yml file.
SKILL.md.claude/skills/crystal/SKILL.md
GitHubCrystal Project Workflow
Shard management
- Never manually edit
shard.lock— runshards installto regenerate it after changingshard.yml. - When pointing a shard at a GitHub repo without a published version tag, add
branch: mastertoshard.ymlso the resolver can find it. - Local
path:dependencies are for development only — always switch togithub:before committing.
Building and running
shards run --error-trace <target>— compile and run a target listed inshard.ymlin one step.crystal tool format— format all Crystal files in the project.crystal spec spec/path/to/test_spec.cr:LINE_NUMBER --error-trace— run a specific test with error traces.
Testing patterns
- Tests use Minitest, not Crystal's built-in
specframework. - To test private methods, add a public proxy method on the class that delegates to the private one (see existing specs for examples).
- Test files live in
spec/mirroring thesrc/directory structure.