{"enrichment":{"faq":[{"a":"biome-developer emphasizes learning biome-specific patterns to avoid common mistakes. Key practices include: using `TokenText` for zero-copy string access instead of allocating new strings, leveraging syntax node hierarchy for efficient AST navigation, and understanding the parser crate's `quick_test` utilities for validation. Follow Rust best practices with clippy compliance, use let chains and collapsible if patterns for readability, and test embedded language support thoroughly before merging changes to the codebase.","q":"What are biome development best practices?"},{"a":"biome-developer teaches AST navigation by understanding syntax node hierarchy and parent-child relationships. Access nodes through their typed interfaces, navigate using parent and sibling methods, and manipulate syntax carefully to avoid borrow checker issues with temporary values. Use `inner_string_text` for trimmed content and `text_trimmed` appropriately based on context. Master these patterns to write robust code that traverses and transforms Biome's abstract syntax trees reliably.","q":"How do you work with biome AST and syntax nodes?"},{"a":"biome-developer prioritizes efficient string extraction without unnecessary allocation. Use `TokenText` for zero-copy access to token content, avoiding heap allocation when possible. Understand the distinction between `inner_string_text` and `text_trimmed` methods to extract exactly what you need. Store token relative ranges rather than duplicating strings, and be mindful of borrow checker constraints when working with temporary values. This approach keeps memory usage low and performance high.","q":"What's the best approach to biome string extraction and text handling?"},{"a":"biome-developer covers embedded language support for Vue, Svelte, Astro, and similar frameworks. Handle directives properly, parse HTML attributes accurately, and test embedded language scenarios before deployment. Understand how Biome's parser integrates different language contexts, manage token boundaries across language transitions, and validate that your implementation doesn't break existing embedded language support. Use the workspace path dependencies in cargo to test changes across Biome's modular codebase.","q":"How do you implement support for embedded languages correctly?"},{"a":"biome-developer highlights avoiding costly mistakes: don't allocate strings unnecessarily when `TokenText` suffices, watch for borrow checker issues with temporary values in syntax node manipulation, and be careful with token relative range storage to prevent offset errors. Test embedded language support thoroughly, validate directive handling across frameworks, and use quick_test utilities during development. Following these patterns prevents regressions and keeps your contributions maintainable.","q":"What common gotchas should you avoid in biome development?"},{"a":"biome-developer guides CSS class name extraction by understanding HTML attribute parsing and token text handling. Navigate the syntax tree to locate class attributes, use `TokenText` to access their values without allocation, and parse the space-separated class list efficiently. Handle edge cases like quoted values and whitespace trimming. Test your extraction logic with the parser crate's quick_test utilities to ensure accuracy across different HTML contexts and embedded language scenarios.","q":"How do you extract CSS class names using biome?"}],"shadow_tags":["ast-navigation","memory-efficiency","rust-idioms","embedded-templates","framework-support","token-management","error-handling","code-patterns","performance-tips","testing-strategies"],"summary_rewrite":"This skill guides developers working on Biome's codebase through essential patterns and pitfalls. It covers AST and syntax node navigation, efficient string extraction without allocation, and handling embedded languages across frameworks like Vue and Svelte. Use it to write cleaner, more maintainable code and avoid costly mistakes when extending Biome's parser, analyzer, and formatter."},"files":[{"bytes":18216,"path":".claude/skills/biome-developer/SKILL.md","sha256":"236c1f7f53f1615dde0a33e457b0c9548619abce0ef99e6fa9cb55949bc04ed4","url":"https://skillfed.io/files/biomejs/biome/biome-developer/14c440f8/SKILL.md"}],"id":"biomejs/biome/biome-developer","links":{"html":"https://skillfed.io/biomejs/biome/biome-developer","md":"https://skillfed.io/biomejs/biome/biome-developer.md","repo":"https://github.com/biomejs/biome"},"meta":{"agents_supported":["claude-code"],"first_seen":"2026-07-28","forks":1157,"language":"Rust","last_updated":"2026-07-27","license":"Apache-2.0","name":"biome-developer","publisher":"biomejs","stars":25418},"relations":{"similar":[{"id":"biomejs/biome/type-inference"},{"id":"secondsky/claude-skills/ultracite"},{"id":"oxc-project/oxc/migrate-oxfmt"},{"id":"aahl/skills/cn-stats"},{"id":"managedcode/dotnet-skills/biome"},{"id":"haydenbleasel/ultracite/ultracite"},{"id":"prisma/prisma-next/psl-ast-layers"},{"id":"orval-labs/orval/orval"},{"id":"tobihagemann/turbo/review-tooling"},{"id":"biomejs/biome/lint-rule-development"}]},"slug":{"owner":"biomejs","repo":"biome","skill":"biome-developer"},"version":"14c440f8"}
