crabtalk/bezel/bezel-contributing
Claude Code and agent skill by crabtalk/bezel
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install crabtalk/bezel/bezel-contributingSKILL.md
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
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
- 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.
- 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.
- Motion is named. From the
MotionSpeccatalog; phase math lives in
motion::phase and is unit-tested. No inline durations or curves.
- 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.
- Measured, and dated. Every number on
Themerecords 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.
What a change lands with
- A gallery row.
apps/gallery/src/lib.rsTABS— 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, frontmattertitle+ 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,markdownround-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
After touching imports, stable rustfmt cannot group them per crate (rustfmt#4991):
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.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/bezel-contributing/SKILL.md
Popularity
- Repository stars
- 169
- Repository forks
- 12
- 7-day trend score
- 31
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/crabtalk/bezel/bezel-contributing)