Ask Sonner
leepokai/Codync
Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and…
Name what a thing is, not how it is built. An agent skill from tola-rs/tola-ssg.
$ npx skills add tola-rs/tola-ssg --skill naming -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tola-rs/tola-ssg naming --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tola-rs/tola-ssg.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/naming .claude/skills/naming && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "naming" agent skill from https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/naming into .claude/skills/naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "naming", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/namingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tola-rs/tola-ssg --skill naming -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tola-rs/tola-ssg naming --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tola-rs/tola-ssg.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/naming .agents/skills/naming && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "naming" agent skill from https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/naming into .agents/skills/naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "naming", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tola-rs/tola-ssg --skill naming -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tola-rs/tola-ssg naming --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tola-rs/tola-ssg.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/naming .cursor/skills/naming && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "naming" agent skill from https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/naming into .cursor/skills/naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "naming", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tola-rs/tola-ssg.git --path .agents/skills/naming--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tola-rs/tola-ssg --skill naming -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tola-rs/tola-ssg naming --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tola-rs/tola-ssg.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/naming .gemini/skills/naming && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "naming" agent skill from https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/naming into .gemini/skills/naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "naming", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tola-rs/tola-ssg namingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tola-rs/tola-ssg --skill naming -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tola-rs/tola-ssg.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/naming .github/skills/naming && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "naming" agent skill from https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/naming into .github/skills/naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "naming", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tola-rs/tola-ssg --skill naming -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tola-rs/tola-ssg naming --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tola-rs/tola-ssg.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/naming .opencode/skills/naming && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "naming" agent skill from https://github.com/tola-rs/tola-ssg/tree/main/.agents/skills/naming into .opencode/skills/naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "naming", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
namingName what a thing is, not how it is built. An agent skill from tola-rs/tola-ssg.
Naming is an agent skill from tola-rs/tola-ssg. Name what a thing is, not how it is built. Use before writing, renaming, or reviewing a name in Rust code — a type, function, trait, module, file, collection, field, variable, boolean, constant, error, cache, test, CLI flag, or configuration key — and whenever a name is vague, drifts from what it holds, or hides a design nobody can state.
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design. It works with Rust. The repository describes itself as: SSG for typst-based websites - keep your focus on the content. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fbb0506. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Naming loads about 1.3k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 647 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from tola-rs/tola-ssg at commit fbb0506, republished under its MIT licence (© tola-rs). 647 words, ~1,260 tokens.
.claude/skills/naming/SKILL.md (or your agent's skills folder).Scope: names in Rust code. Typst sources — the embedded @tola/* packages, generated scaffolding, and site recipes — follow Typst's conventions and the site vocabulary the tola skill records.
A name carries 3 facts: what represented, who owns it, when valid. Cannot answer all 3 from name + owner → wrong name.
Name the entity or invariant, not the storage technique: SourceSnapshot holds frozen source identity; BytesBlob says only how bytes are kept.
Diagnostic for the record every producer emits; one Source for every file the compiler reads). Narrowed to one concrete thing, an earned word still describes it; an unearned one collapses — was filler all along.DeclaredOutputs, not outputList.is_draft, not draft_flag.normalize_path, not process_path.MissingPackageRoot, not InvalidInput.catalog in Tola-owned identifiers, modules, files, directories — incl case variants and compounds (PackageCatalog, package_catalog). Name the actual entity: PublishedPackages, PackageVersions, IconCollections. Another vague container word does not fix it. Preserve user-authored names and upstream-API spellings; do not adopt them for Tola's own.data, info, item, object, context, state, result, policy, entry, record, element, input, fixture, probe. Name what the value holds or decides: ReferenceLevel not ReferencePolicy; SlugSeparator not SeparatorPolicy; ImportPath not Input; a test helper named for the value it returns (html_page, asset_route), never the technique that builds it.reading for a pronunciation or compiler read; processing/handling for the thing they produce. Established term wins — pronunciation, read, read evidence.Manager, Processor, Handler, Helper, Util.authored, provided, handled, processed, managed. Name states the relationship carried (configured, resolved, declared), not who/what produced it. Participant earns its place only when it changes meaning — imported_by for a diagnostic raised inside a package.resolved passes — the filesystem's own spelling, symlinks followed. authored fails — no rule distinguishes it from path.ResolvedSiteConfigWithSiteDirectory names a field pair, not the invariant making the pair necessary (OwnedSiteConfig). Conjunction only when both parts are domain data that must travel together and no single noun covers them; when one part is plumbing merely keeping the other valid, name the invariant instead. Longer is the symptom, not the fix.routes::routes, Route::route_path, Connection::connect_connection. Inside routes, a function states the operation (site_routes, respond), a type the entity (Route); the module already said where they live.Existing vague names do not license new ones.
Before accepting a name, answer from name + owner alone:
Needs the implementation → change the name.
Four standards, all: concise — as short as the entity allows; clear — those 3 answers, without the implementation; rigorous — no filler noun, no role suffix, no word another concept owns; correct — states what the value is, and a rename leaves no old spelling behind.
Rename when the name lies, drifts from what the value holds, or hides a design that cannot be stated. Do it whole: declaration, every call site, imports, strings that spell it, assertions that expect it, comments that mention it. No alias, wrapper, or old spelling stays behind.
© tola-rs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/naming of tola-rs/tola-ssg.
Open the folder on GitHubat commit fbb0506
Naming next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Naming this skilltola-rs/tola-ssg | 178 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Ask Sonnerleepokai/Codync | 232 | 4 repos | ~1.8k | Automated safety check: Warn | Apache-2.0 | |
| Gpui KitStudentWeis/ropy | 194 | 1 repos | ~5.6k | Automated safety check: Pass | MIT | |
| Tauri Config Ipcifer47/markeron | 1.2k | — | ~1k | Automated safety check: Pass | MIT | |
| Servo Fetchkonippi/servo-fetch | 157 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Reactflow Workflowveloxbase/veloxdb | 652 | — | ~897 | Automated safety check: Pass | MIT |
leepokai/Codync
Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and…
StudentWeis/ropy
How to build desktop applications with GPUI Kit, the Rust framework published as the gpui-kit crate (GPUI plus gpuikit::component, gpuikit::base, gpuikit::assets).
ifer47/markeron
Extend MarkerOn settings, persisted config, or Tauri IPC commands.
konippi/servo-fetch
Fetch and render web pages using the Servo browser engine — a single binary with JS execution, CSS layout, screenshots, and content extraction.
veloxbase/veloxdb
Build and harden React Flow diagram surfaces in VeloxDB using @xyflow/react patterns (nodes, edges, viewport, controls, interactions, performance).
regisx001/Worklog
Design and UI skill for the Worklog desktop project manager.
tola-rs/tola-ssg
Shrink code, tests, comments, and docs to what carries meaning — delete dead paths, redundant states, and refactor-dragging tests outright, then hold the survivors to the four bars.
tola-rs/tola-ssg
Build and maintain Tola websites and documentation. An agent skill from tola-rs/tola-ssg.
tola-rs/tola-ssg
Design and review work that runs concurrently, waits, retries, or owns resources.
tola-rs/tola-ssg
Report progress to the human. An agent skill from tola-rs/tola-ssg.
tola-rs/tola-ssg
Restructure code while keeping observable behavior identical, and prove it with difference testing.
tola-rs/tola-ssg
Run work through subagents instead of the main thread. An agent skill from tola-rs/tola-ssg.
Works with
Categories
Name what a thing is, not how it is built. An agent skill from tola-rs/tola-ssg. Naming is an agent skill from tola-rs/tola-ssg. Name what a thing is, not how it is built.
Naming fits situations like: frontend & Design work in your project.
Run `npx skills add tola-rs/tola-ssg --skill naming -a claude-code`. Or copy the skill folder (.agents/skills/naming in tola-rs/tola-ssg) into .claude/skills/naming in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tola-rs/tola-ssg --skill naming -a codex`. Or copy the skill folder (.agents/skills/naming in tola-rs/tola-ssg) into .agents/skills/naming in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tola-rs/tola-ssg --skill naming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/naming, .gemini/skills/naming, .github/skills/naming and .opencode/skills/naming in your project.
SKILL.md names no scripts, command-line tools or credentials: Naming is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Naming is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Naming: Ask Sonner (leepokai/Codync, 232 stars), Gpui Kit (StudentWeis/ropy, 194 stars), Tauri Config Ipc (ifer47/markeron, 1.2k stars) and Servo Fetch (konippi/servo-fetch, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tola-rs (a GitHub organization) maintains it in tola-rs/tola-ssg, which has 178 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 9, 2026.
Source: tola-rs/tola-ssg on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.