tts-tool
Generate a natural-sounding `.opus` audio file from text or markdown. Use when a user wants spoken audio, especially for content with markdown, URLs, formulas, paths, or technical notation that should be rewritten for speech.
nim-style-guide
Write clear, consistent Nim code in a simple stdlib-aligned style, covering imports, naming, proc vs func vs template choices, local variables, constructors, formatting, and control flow. Use when writing new Nim code or reviewing a Nim module for readability, consistency, and low-noise style dec...
Full skill instructions
Use this skill to keep Nim code simple, consistent, and easy to scan.
Larger examples live under references/.
a..b unless spaces are needed for clarity.std/... imports for stdlib modules.import std/[a, b, c].from std/foo import bar, baz when you only need a small API slice.PascalCase.camelCase.parseUrl and httpStatus.pcFile. For pure enums, use PascalCase.proc.func for pure helpers and pure accessors when checked purity helps.template only for tiny substitutions or tiny syntax wrappers.proc or func.proc and func over method. Use method only when you need runtime dispatch.{.nimcall.}.macro only when syntax transformation is required.let by default.var only for values that mutate.type blocks at module scope.Nim is whitespace-sensitive in three specific places. Violating any of these produces compile errors.
No space before [ in type annotations.
array[0..4, bool] compiles. array [0..4, bool] does not.seq[string], Table[string, int], etc.No space between a proc name and ( when calling with 2+ arguments.
foo(1, 2) passes two int arguments.foo (1, 2) passes a single (int, int) tuple. Nim treats the parenthesized comma-list as a tuple constructor.Spaces required around .. and ..< in slice and range expressions.
0 .. high(s) and 0 ..< s.len are correct.0..high(s) may fail in some contexts (notably range[0..<n] does not compile; use range[0 .. n-1] instead).Nim has no line-continuation character. A statement continues to the next line when the current line ends in:
and, or, +, &, etc.),(, [, {The continued line must be indented further than the statement that started it.
if/elif/else and explicit loop conditions.return.result = ... when that reads more clearly.return for real guard exits or found values, not as the default shape of every branch.continue. Restructure the branch instead.proc. Switch to func only for pure helpers. Use template or macro only when substitution or syntax shaping is the point. Do not use method unless you need runtime dispatch.std/... imports, narrow imports when practical, and keep names in normal Nim casing.let by default, keep locals near first use, keep reusable helpers at module scope, and let constructors keep declaration defaults unless you are overriding them.| Mistake | Why it is wrong |
|---|---|
Using method as the default callable kind | It adds runtime dispatch where a plain proc or func would usually be clearer. |
| Hiding reusable helpers inside another proc | It makes the helper harder to reuse and easier to turn into an accidental closure. |
Using template for general helper logic | It hides normal control flow and expands code in place. |
Using proc for an obviously pure helper | It loses a useful compiler-checked purity signal. |
| Writing one argument per line by default | It adds vertical noise without adding structure. |
Using var for values that never mutate | It hides which locals actually change. |
Turning every branch into an early return in a multi-step proc | It makes the normal path harder to scan. |
Using continue | It usually means the branch can be written more clearly. |
| Restating every object field in a constructor | It adds noise and can hide which fields are intentionally overridden. |
references/core_patterns.md: Simple default patterns for imports, callable kinds, wrapping, locals, and constructors.func purity contract guidance.Generate a natural-sounding `.opus` audio file from text or markdown. Use when a user wants spoken audio, especially for content with markdown, URLs, formulas, paths, or technical notation that should be rewritten for speech.
Design clear public Nim APIs for libraries and modules, including exported types, constructors, lookup functions, error contracts, and container-style interfaces. Use when creating or reviewing a Nim library API, designing an exported module surface, or deciding how callers should construct, acce...
Extract raw text from PDF files with OCR, including full-document extraction, selected page ranges, and reuse of cached pages. Use when a user asks to OCR a PDF, extract text from a scanned PDF, or read selected PDF pages.
Turn low-level C FFI bindings into an idiomatic Nim API, with safer types, cleaner module boundaries, resource management, callbacks, enums, bitflags, and exception-based error handling. Use when building a high-level Nim wrapper around a C library or improving the usability of existing raw bindi...
Store and search text or markdown as semantic chunks in a reusable local vector store. Use when a user wants to ingest documents or retrieve relevant passages from previously stored material.
Study assistant workflow for turning provided study material into exam-focused deliverables such as verbatim transcriptions, study notes, lecture-style explanations, ELI5 explanations, flashcards, Mermaid mind maps, quizzes, and essay questions.
Organize Nim code into clear modules and multi-step workflows, with explicit state, top-level helper procs, narrow exports, and easy-to-follow orchestration. Use when refactoring a large Nim file, splitting logic across modules, designing parser-style stateful code, or cleaning up nested helpers ...
Implement and review Nim ARC/ORC ownership hooks for types that manually manage resources, including move-only, deep-copy, refcounted, and copy-on-write patterns. Use when a Nim type owns pointers, buffers, file descriptors, or custom heap memory and you need correct `=destroy`, `=copy`, `=dup`, ...
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience