Agent skill

Bezel Contributing

by crabtalk in crabtalk/bezel

Work inside the bezel repo — where code goes across the crate layers, the five laws a change has to obey, and everything a component has to land with (gallery row, docs page, tests, the nightly…

MITAuto-check passedMobile

Install Bezel Contributing

skills CLI
$ npx skills add crabtalk/bezel --skill bezel-contributing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install crabtalk/bezel bezel-contributing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/crabtalk/bezel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/bezel-contributing .claude/skills/bezel-contributing && rm -rf skills-src

Use ~/.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/

Facts

Skill name
bezel-contributing
GitHub stars
172
Token cost
~1.1k tokens
SKILL.md length
479 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Work inside the bezel repo — where code goes across the crate layers, the five laws a change has to obey, and everything a component has to land with (gallery row, docs page, tests, the nightly…

  • Works in 5 steps: Style flows through the environment. No… → SwiftUI vocabulary. Name a widget for… → Motion is named. From the MotionSpec… → …
  • Any edit under crates/
  • SKILL.md covers Where code goes, The five laws, compressed, What a change lands with and Commands, plus 1 more section
  • Calls cargo

What it does

Bezel Contributing is an agent skill from crabtalk/bezel. Work inside the bezel repo — where code goes across the crate layers, the five laws a change has to obey, and everything a component has to land with (gallery row, docs page, tests, the nightly rustfmt import pass). Use for any edit under crates/, apps/ or www/ in this repository, and before opening a PR against crabtalk/bezel.

Its SKILL.md is about 1.1k 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 Mobile, covering iOS development. It works with Rust. The repository describes itself as: A SwiftUI-lean GPUI component library, style flows through the environment, never through parameters. The licence is MIT.

When your agent uses it

  • Any edit under crates/
  • Www/ in this repository
  • Before opening a PR against crabtalk/bezel

Example prompts

  • “/bezel-contributing”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Style flows through the environment. No color, font or size parameters.
  2. SwiftUI vocabulary. Name a widget for its SwiftUI analog. Stateless paint
  3. Motion is named. From the MotionSpec catalog; phase math lives in
  4. Numbers drive layout, colors are paint. No layout value depends on which
  5. Measured, and dated. Every number on Theme records where it was read and

What it can do on your machine

Read from SKILL.md and the folder at commit bcefab1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bezel Contributing loads about 1.1k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 479 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from crabtalk/bezel at commit bcefab1, republished under its MIT licence (© crabtalk). 479 words, ~1,140 tokens.

Download SKILL.mdSave it as .claude/skills/bezel-contributing/SKILL.md (or your agent's skills folder).
name
bezel-contributing
description
Work inside the bezel repo — where code goes across the crate layers, the five laws a change has to obey, and everything a component has to land with (gallery row, docs page, tests, the nightly rustfmt import pass). Use for any edit under crates/, apps/ or www/ in this repository, and before opening a PR against crabtalk/bezel.

Working on bezel

CONTRIBUTING.md is the full text and wins on any conflict. This is the part an agent gets wrong.

Where code goes

crates/theme     tokens + appearance      (the @Environment layer)
crates/motion    animation vocabulary
crates/ui        components               (the View layer)
crates/icons     the icon set             (declared from Lucide, no SVGs in git)
crates/markdown  block document model     (pure: doc, parse, serialize, select, edit)
crates/blocks    painted fenced blocks
crates/editor    the editing surface      (keys, IME, undo, anchors, menus)
crates/syntax    tree-sitter highlighting (one answer to a seam, never a feature on it)
crates/bezel     the facade
apps/gallery     the documentation, live

Dependencies point downward only — ui → motion + theme, theme → gpui alone. A member inherits every dependency (x.workspace = true) and never names a version of its own. Nothing new lands in the facade that every app does not paint with; markdown, syntax, blocks and terminal stay peers a consumer names.

The five laws, compressed

  1. Style flows through the environment. No color, font or size parameters. The environment supplies defaults; a caller overrides by chaining gpui modifiers on what is returned — so never bake style into a child the caller cannot reach. The rare exception takes an optional StyleRefinement merged last.
  2. SwiftUI vocabulary. Name a widget for its SwiftUI analog. Stateless paint is a catalog trait on Theme; stateful is a struct entity whose builders configure content. A closed enum picks between shipped looks — free-form radius, color and padding never become parameters.
  3. Motion is named. From the MotionSpec catalog; phase math lives in motion::phase and is unit-tested. No inline durations or curves.
  4. Numbers drive layout, colors are paint. No layout value depends on which color is painted. A number reaches Theme only when the platform names it; a component's own metric stays with the component.
  5. Measured, and dated. Every number on Theme records where it was read and when. Where the platform names one value, ship one and no more — inventing the rest puts made-up numbers in the file and every later decision rests on them.

Extracted from working application code, never invented ahead of need. If there is no consumer, it does not land.

Show full SKILL.md (198 more words)Show less

What a change lands with

  • A gallery row. apps/gallery/src/lib.rs TABS — key, title, and the source path it prints as documentation. apps/gallery/tests/rail.rs asserts keys are unique and every path exists.
  • A docs page. www/docs/<key>.md, frontmatter title + a one-line unique description. The site indexes prose by rail key, so a row without a page is a broken build, and the page is what llms.txt and llms-full.txt serve to agents.
  • Tests. Pure logic gets unit tests (motion::phase, markdown round-trips to a fixed point). Prefer a test that proves the artifact works over one that proves it looks like markup.
  • Terse docs. Doc comments say what the thing is and why it is that way. No essays.

Commands

sh
cargo nextest run                       # the suite — never cargo test
cargo clippy --workspace --all-targets  # CI runs with -D warnings
cargo run -p gallery                    # every component, live
cargo build -p web --lib --target wasm32-unknown-unknown   # CI's third leg

After touching imports, stable rustfmt cannot group them per crate (rustfmt#4991):

sh
rustfmt +nightly --edition 2024 --config imports_granularity=Crate <files>
cargo fmt --all

CI is fmt + clippy on Linux, nextest --no-fail-fast on macOS and Linux, and a wasm build. Linux is the platform with no lens that must still pass; wasm is where std::time::Instant panics and a missing renderer feature first shows up.

Pull requests

One-line Conventional Commits subject (feat(editor): tab indents and zoom support) — no body, no trailers, no AI attribution. PR body is a few lines or short bullets. Branch, never push to main.

© crabtalk, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/bezel-contributing of crabtalk/bezel.

Open the folder on GitHubat commit bcefab1

Compare with similar skills

Bezel Contributing 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.

Bezel Contributing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bezel Contributing this skillcrabtalk/bezel172—~1.1kAutomated safety check: PassMIT
Build Teaql Appteaql/teaql-agent-kit2.8k—~4.6kAutomated safety check: PassMIT
Fory Version Bumpapache/fory4.6k—~1.1kAutomated safety check: PassApache-2.0
Fory Performance Optimizationapache/fory4.6k—~2.2kAutomated safety check: PassApache-2.0
MCP SDK Tier Auditmodelcontextprotocol/conformance129—~4.4kAutomated safety check: PassCustom licence
iOS Log DiagnoseUniClipboard/UniClipboard1.9k—~1.1kAutomated safety check: PassAGPL-3.0

Similar skills

  • Build Teaql App

    teaql/teaql-agent-kit

    Build or change a TeaQL application in Java, Rust, Go, Swift, Python, C/.NET, or TypeScript, including Kotlin/JVM applications that consume Java-generated libraries.

    2.8k GitHub stars~4.6k tokensUpdated 11 days ago
    MobileAuto-check passed
  • Bump Apache Fory release or post-release development versions across Java, Kotlin, Scala, Python, Rust, Go, C++, C, Dart, JavaScript, Swift, integration tests, examples, and source docs.

    4.6k GitHub stars~1.1k tokensUpdated yesterday
    MobileAuto-check passed
  • Run profile-driven bottleneck optimization across Apache Fory implementations (Java, C++, Python/Cython, Go, Rust, Swift, C, JavaScript/TypeScript, Dart, Kotlin, Scala).

    4.6k GitHub stars~2.2k tokensUpdated yesterday
    MobileAuto-check passed
  • MCP SDK Tier Audit

    modelcontextprotocol/conformance

    Official

    Comprehensive tier assessment for an MCP SDK repository against SEP-1730.

    129 GitHub stars~4.4k tokensUpdated 3 days ago
    MobileAuto-check passed
  • iOS Log Diagnose

    UniClipboard/UniClipboard

    Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.

    1.9k GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Healthmd CLI QA

    CodyBontecou/health-md

    Test the standalone Health.md CLI, portable healthmd-mcp server, and direct mobile paths.

    230 GitHub stars~4k tokensUpdated today
    MobileAuto-check passed

More from crabtalk/bezel

  • Bezel

    crabtalk/bezel

    Build native GUI apps in Rust with bezel, the gpui component library (bezel, bezel-gpui, bezel-ui, bezel-theme, bezel-motion, bezel-icons, bezel-markdown, bezel-editor, bezel-terminal).

    172 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Bezel Contributing

What does Bezel Contributing do?

Work inside the bezel repo — where code goes across the crate layers, the five laws a change has to obey, and everything a component has to land with (gallery row, docs page, tests, the nightly…. Bezel Contributing is an agent skill from crabtalk/bezel. Work inside the bezel repo — where code goes across the crate layers, the five laws a change has to obey, and everything a component has to land with (gallery row, docs page, tests, the nightly rustfmt import pass).

When should I use Bezel Contributing?

Bezel Contributing fits situations like: any edit under crates/; www/ in this repository; before opening a PR against crabtalk/bezel.

How do I install Bezel Contributing in Claude Code?

Run `npx skills add crabtalk/bezel --skill bezel-contributing -a claude-code`. Or copy the skill folder (skills/bezel-contributing in crabtalk/bezel) into .claude/skills/bezel-contributing in your project. Claude Code loads it when a task matches its description.

How do I install Bezel Contributing in Codex?

Run `npx skills add crabtalk/bezel --skill bezel-contributing -a codex`. Or copy the skill folder (skills/bezel-contributing in crabtalk/bezel) into .agents/skills/bezel-contributing in your project. Codex loads it when a task matches its description.

Can I use Bezel Contributing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add crabtalk/bezel --skill bezel-contributing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bezel-contributing, .gemini/skills/bezel-contributing, .github/skills/bezel-contributing and .opencode/skills/bezel-contributing in your project.

What does Bezel Contributing need to run?

Going by SKILL.md and its folder, Bezel Contributing needs the command-line tools its instructions call (cargo).

Does Bezel Contributing access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Bezel Contributing safe to install?

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.

What licence does Bezel Contributing use?

Bezel Contributing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bezel Contributing use?

About 1.1k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bezel Contributing?

Skills that share tags, products or a category with Bezel Contributing: Build Teaql App (teaql/teaql-agent-kit, 2.8k stars), Fory Version Bump (apache/fory, 4.6k stars), Fory Performance Optimization (apache/fory, 4.6k stars) and MCP SDK Tier Audit (modelcontextprotocol/conformance, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bezel Contributing?

crabtalk (a GitHub organization) maintains it in crabtalk/bezel, which has 172 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.

Source: crabtalk/bezel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.