Skip to content
cccskills
FreePublished on GitHub

style

Apply the project’s Rust conventions when editing code or documentation. The guidance covers module and type organization, workspace dependency declarations, plain English documentation, and tests that check meaningful behavior rather than fixed text.

OriginalShow the original description

Always use this skill before writing or editing Rust code or documentation in the Topcoat repository

tokio-rs/topcoat6,225 stars(GitHub 6,225 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Organizing Rust modules and implementations
  • Writing or revising Rust documentation
  • Reviewing whether a test protects real behavior

Files included (1)

  • SKILL.md2.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Code Style

General

  • Keep related code together: a struct is immediately followed by its inherent impl and then its trait impls, before the next struct in the file. Unit tests (#[cfg(test)] mod tests) go at the very bottom of the file.
  • Free functions are allowed, but first consider whether a more idiomatic Rust grouping onto a struct exists.
  • Unsafe code is not allowed in this project, unless wrapped by a reputable dependency.
  • Avoid needless allocations, it is reasonable to refactor the code a bit to make it faster.

Barrel files

Name a module's file after the module and place it alongside its directory (foo.rs next to foo/), never foo/mod.rs. A barrel file declares all submodules and re-exports each with a glob; only third-party items are re-exported by name.

mod content;
mod error;
mod request;

pub use content::*;
pub use error::*;
pub use request::*;

pub use http::Method;

When a module's submodules are peers that make up a whole (the CLI commands fmt, dev, asset; the macros expr, procedure, shard), put anything shared between them in a common submodule so it does not read as another peer.

Dependencies

  • Declare every dependency in the top-level Cargo.toml under [workspace.dependencies] with only a version and no features. Crates pull it in with workspace = true and opt into features there.

Documentation

  • Write in plain english. No fancy sentence structure.
  • Item docs describe what something is/does and how to use it. Avoid implementation details unless relevant to a caller.
  • Describe the current state only; never reference previous iterations ("this used to be A but is now B").
  • Avoid exhaustively listig specific implementations or uses that could evolve over time and go stale. Keep documentation robust to changes.
  • Avoid mentioning unrelated items, like "this is used by X to do Y". Focus on describing only the item itself.
  • Use only ASCII characters in both code and documentation, e.g. -> instead of unicode arrow or ... instead of ellipsis character.
  • Avoid em-dashes entirely. Use colons and semicolons sparingly.
  • Avoid using ignore for code snippets to keep them type-checked.

Tests

  • Do not write tests that only verify hardcoded values. Make the tests insensitive to the exact wording of strings or error messages.
  • Every test must protect a specific behavior or catch a plausible bug. Before writing it, identify what incorrect behavior would make it fail.
  • Derive expected results from the intended behavior. Do not calculate them by repeating the implementation or calling the same code being tested.
  • Keep tests sensitive to broken behavior and tolerant of implementation changes that preserve correct behavior.
  • If a test is useless, delete it.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

check

FreeSummary

Use this skill to check Topcoat changes locally before committing or opening a pull request. It runs the project’s Rust formatting, lint, test, and documentation commands, plus browser project checks when relevant, so problems can be caught before review.

  • Checking a Rust change before committing
  • Validating browser project changes
  • Building project documentation locally
tokio-rs/topcoat6.2KUpdated Oct 25, 2026

commit

FreeSummary

Use this skill to write concise commit messages in the Topcoat project’s Conventional Commits format. It helps choose a change type and scope, describe the update clearly, and mark breaking changes so release notes and version bumps can be based on commit history.

  • Writing a commit message for a code change
  • Choosing a commit type and scope
  • Marking a breaking change and migration note
tokio-rs/topcoat6.2KUpdated Oct 25, 2026

macro

FreeSummary

Use this skill when building procedural macros for Topcoat in Rust. It explains how to preserve parsed syntax in AST nodes, separate parsing from meaning, and keep macro entry points focused on parsing input, expanding valid code, and reporting errors.

  • Designing AST nodes for a procedural macro
  • Parsing custom syntax while preserving tokens
  • Organizing a macro entry point and code generation
tokio-rs/topcoat6.2KUpdated Oct 25, 2026

pr

FreeSummary

Use this skill to prepare a Topcoat pull request from the full branch diff. It guides you to write a Conventional Commits title and a concise body covering the change, verification performed, and an AI-use disclaimer when an agent creates the PR.

  • Writing a pull request title from the net branch change
  • Summarizing a diff and the checks performed
  • Adding the required AI-use disclosure to a PR
tokio-rs/topcoat6.2KUpdated Oct 25, 2026

prose

FreeSummary

Use this skill to write long-form Markdown guides for Topcoat. It covers where documentation sources belong, how to structure explanations from basic to advanced, and how to keep prose plain, concise, and easier to maintain as implementations change.

  • Planning where a guide and its links should live
  • Structuring a guide from basic to advanced use
  • Editing Markdown for clear, maintainable prose
tokio-rs/topcoat6.2KUpdated Oct 25, 2026

See all skills by tokio-rs

Report a problem with this skill