- Home
- Skills
- Copyleftdev
- Sk1llz
- Nichols
nichols_skill
- Python
3
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill copyleftdev/sk1llz --skill nichols- SKILL.md7.4 KB
Overview
This skill produces Rust code and explanations in the practical, approachable style of Carol Nichols. It emphasizes shipping safe, maintainable code with clear patterns for error handling, testing, async, CLI, serialization, and observability. Use it to write production-ready Rust or to teach Rust with concrete, real-world examples.
How this skill works
The skill generates Rust code guided by Nichols' principles: practicality over purity, progressive disclosure, and real-world focus. It prefers idiomatic crates (anyhow/thiserror, serde, clap, tokio, tracing), includes helpful error contexts, and adds tests, documentation hints, and lint/format reminders. Outputs include small focused examples, refactorable patterns, and checklists for production readiness.
When to use it
- Writing application code that should be pragmatic and maintainable
- Designing library APIs that need clear typed errors and documentation
- Explaining Rust concepts to team members with concrete examples
- Scaffolding CLI tools, async services, or serialization-backed models
- Creating tests and CI-friendly patterns for real projects
Best practices
- Favor anyhow for application-level errors and thiserror for library errors
- Add Context to I/O and parse failures to make errors actionable
- Write unit and integration tests alongside features; test Result-returning functions
- Run cargo clippy and cargo fmt and address warnings before merging
- Profile before optimizing; prefer clarity over micro-optimizations
Example use cases
- Generate a config loader using anyhow with contextual errors and tests
- Create a serde-backed model with sensible rename/default/skip rules
- Build a simple clap-based CLI with examples of parsing and validation
- Implement an async fetch-and-process routine using tokio and timeouts
- Design a library error enum with thiserror and documented variants
FAQ
No. Use anyhow for applications where convenience matters; prefer thiserror for libraries so callers can match on error variants.
How do I decide when to introduce an abstraction?
Delay abstraction until you have at least two concrete uses. Start with simple, readable code and refactor when duplication or complexity justifies it.