Skip to main content

design

Always use this skill before authoring or editing a Toasty design document under docs/dev/design/

Source facts

Repository
tokio-rs/toasty
Last source activity
May 23, 2026 at 07:57
Detected SKILL.md language
English
Stars
3,210
Forks
143

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
design
description
Always use this skill before authoring or editing a Toasty design document under docs/dev/design/
# Authoring Toasty Design Documents Load this skill before writing or editing a design document in [`docs/dev/design/`](../../../docs/dev/design/). ## Format and layout **Always read [`docs/dev/design/_template.md`](../../../docs/dev/design/_template.md) before writing.** It is the authoritative source for section order, section purposes, and the framing the doc should adopt. Copy the template to `docs/dev/design/<feature-name>.md` and fill it in. Keep the section order; if a section genuinely does not apply, delete it and explain why in one line rather than leaving it empty. ## Writing style Follow the conventions from the [`prose`](../prose/SKILL.md) skill: be fact-focused, direct, and concrete. No buzzwords, no fluff, no dramatic terms. ## Be succinct Readers already know Toasty and Rust. Lead with the problem and the proposal so a maintainer can grasp the important bits quickly. Cut restated background, obvious explanations, and throat-clearing. Length is not a virtue; clarity is. ## Rust examples Rust code blocks in design docs are illustrative. They **do not need to compile** and are **not** run through rustdoc or any other test. Do **not** add `#`-prefixed hidden boilerplate — no `# use …` imports, no `# async fn __example(…) { … }` wrappers, no `# fn main`, nothing hidden to satisfy a compiler. Show only the lines that matter to the reader, even if the snippet would not compile on its own. This overrides the doctest-preamble instruction in `_template.md`'s `User-facing API` section: that preamble is for the user guide, where examples *are* tested. Design docs are not. ## Framing A design doc is **guide-level**, not implementation-level. Write it for the two audiences the template names: - Toasty users — Rust developers writing models and queries. - Driver implementors — anyone implementing the `Driver` trait. Describe what those audiences will see, call, and have to do. Omit internal module layouts and implementation choices that have no observable effect on either audience. The `User-facing API` section should read like a chapter of the user guide — prose with worked examples, not an API catalog. The examples are still illustrative only (see `Rust examples` above) — do not add doctest boilerplate to them. ## Workflow Non-trivial features follow the path in [`CONTRIBUTING.md`](../../../CONTRIBUTING.md): open a feature-proposal issue first, then land a roadmap entry in [`docs/dev/roadmap/`](../../../docs/dev/roadmap/) and the design doc **in the same PR**. The implementation lands as a follow-up PR once the design is accepted.
View on GitHub