Code Guidelines
getsentry/sentry-react-native
Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.
Enforce Sentry Dart/Flutter SDK code guidelines for implementation, refactoring, and review.
$ npx skills add getsentry/sentry-dart --skill code-guidelines -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install getsentry/sentry-dart code-guidelines --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/getsentry/sentry-dart.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/code-guidelines .claude/skills/code-guidelines && rm -rf skills-srcUse ~/.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/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelines into .claude/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelinesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add getsentry/sentry-dart --skill code-guidelines -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install getsentry/sentry-dart code-guidelines --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-dart.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/code-guidelines .agents/skills/code-guidelines && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelines into .agents/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getsentry/sentry-dart --skill code-guidelines -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install getsentry/sentry-dart code-guidelines --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-dart.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/code-guidelines .cursor/skills/code-guidelines && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelines into .cursor/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/getsentry/sentry-dart.git --path .agents/skills/code-guidelines--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add getsentry/sentry-dart --skill code-guidelines -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install getsentry/sentry-dart code-guidelines --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-dart.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/code-guidelines .gemini/skills/code-guidelines && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelines into .gemini/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install getsentry/sentry-dart code-guidelinesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add getsentry/sentry-dart --skill code-guidelines -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/getsentry/sentry-dart.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/code-guidelines .github/skills/code-guidelines && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelines into .github/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getsentry/sentry-dart --skill code-guidelines -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install getsentry/sentry-dart code-guidelines --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-dart.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/code-guidelines .opencode/skills/code-guidelines && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-dart/tree/main/.agents/skills/code-guidelines into .opencode/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
code-guidelinesEnforce Sentry Dart/Flutter SDK code guidelines for implementation, refactoring, and review.
Code Guidelines is an agent skill from getsentry/sentry-dart, published by the product's own GitHub organization. Enforce Sentry Dart/Flutter SDK code guidelines for implementation, refactoring, and review. Use when implementing features, adding new functionality, refactoring code, reviewing code, designing APIs, modifying public API surface, handling breaking changes, deprecating APIs, writing integrations, or making architecture decisions in any package in this Melos monorepo.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/effective-dart.md`).
It sits in Development, covering Cross-platform mobile apps, Monorepo tooling and Refactoring. It works with Sentry, Dart and Flutter. The repository describes itself as: Sentry SDK for Dart and Flutter. The licence is MIT.
Read from SKILL.md and the folder at commit 96d6367. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
dartFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Code Guidelines loads about 2.2k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 96 tokens; SKILL.md has 1,051 words of instructions outside code blocks.
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.
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.
The full file from getsentry/sentry-dart at commit 96d6367, republished under its MIT licence (© getsentry). 1,051 words, ~2,241 tokens.
.claude/skills/code-guidelines/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Apply these guidelines to all new and modified code across every package in this monorepo. Existing code may not follow these conventions — do not refactor it unless asked.
Use only language features available in the Dart/Flutter versions specified in AGENTS.md.
For non-trivial work — a new feature or integration, a public barrel-file change, or a cross-package/native-interop change — load the design-first skill to shape the modules and seams before writing code. When writing or modifying tests as part of implementation, also load the test-guidelines skill.
Encapsulate SDK features as Integration classes that implement call() and close():
close() if neededpackages/flutter/lib/src/integrations/ for examplesRecord which integrations and features an app actually uses, so usage can be tracked internally. This metadata lives on options.sdk and is serialized onto events as sdk.integrations / sdk.features.
options.sdk.addIntegration('IntegrationName') — mark an integration as active. Call it from the integration's call(). Do not confuse it with options.addIntegration(integration), which registers an integration to run — options.sdk.addIntegration only attaches the name as metadata.options.sdk.addFeature(SentryFeatures.x) — mark a feature as used, gated on whether it is actually configured (e.g. a beforeSend* callback is set, a privacy option is enabled).SentryFeatures (packages/dart/lib/src/constants.dart, @internal) — never inline string literals — so the analytics vocabulary stays consistent. Add a constant there when introducing a new feature.TrackBeforeSendUsageIntegration (packages/dart/lib/src/track_before_send_usage_integration.dart).Use internalLogger for all diagnostic logging. options.log is deprecated — migrate any options.log calls you encounter to internalLogger.
Each package must have its own internalLogger instance. If one doesn't exist, create lib/src/internal_logger.dart:
import 'package:meta/meta.dart';
import 'package:sentry/sentry.dart';
/// Logger for the Sentry <Package> SDK.
@internal
const internalLogger = SentryInternalLogger('sentry_<package>');Log levels:
| Level | Use for |
|---|---|
debug | Routine lifecycle events, configuration confirmations, verbose tracing |
info | Notable but expected events (parsing results, fallback paths taken) |
warning | Recoverable problems (rate limits hit, missing optional config, degraded functionality) |
error | Failures that affect SDK behavior (transport errors, parsing failures) |
fatal | Unrecoverable errors requiring SDK shutdown |
Lazy evaluation — use a closure when the message involves expensive computation:
internalLogger.debug(() => 'Envelope size: ${envelope.computeSize()}');Logs are debug-only — all logging is tree-shaken in release builds via RuntimeChecker.kDebugMode.
options.sendDefaultPiiGroup by feature, not by type. A processor or integration a feature owns lives in that feature's dir (a replay processor in replay/); a cross-cutting one earns its own top-level concept dir (exception/, enricher/). Cohesive subsystems already do this — transport/, telemetry/span/, and native/ (the binding boundary to the platform SDKs; features call it rather than embed native code). Native interop is special for testing and memory, not for placement — see design-first and the Native Code (JNI/FFI) rules above.
Two shapes are scatter — grow neither, and don't read the repo's current use of them as the target:
event_processor/, integrations/) collect classes for sharing a base type. A bucket legitimately holds only its runner (run_event_processors.dart); the base contract belongs at src/ root (event_processor.dart, beside integration.dart). The repo hasn't finished migrating — enrichment, exceptions, and dedup still sit under event_processor/, and flutter has loose replay_event_processor/screenshot_event_processor.src/ root. Core primitives (hub.dart, scope.dart, sentry_client.dart, the sentry.dart barrel) belong there; feature code does not. The v1 span/tracer files strewn across the root, protocol/, and tracing/ are the counter-example to telemetry/span/, which keeps the whole v2 subsystem in one dir.Where a given piece goes is a locality judgment — see design-first (Shape the modules).
Prefer modern Dart (3.5+) where it improves clarity — sealed classes for exhaustive matching, records for multi-value returns, pattern matching and switch expressions, extension types for zero-cost wrappers, enhanced enums, and class modifiers (final / base / interface). Don't force them where plain code reads better.
Shape the public surface deliberately — see design-first for module shape. These habits matter more in an SDK than in app code, and several are easy to get wrong:
packages/dart/AGENTS.md on the barrel-file cascade.final / base / interface / sealed to declare whether a public class may be extended or implemented — without them every public class is implicitly both, and you can't evolve it without breaking consumers.late final field without an initializer. It silently defines a public setter, leaking API surface — use a normal field or an explicit getter instead.lib. Never let an import cross the lib boundary (../lib/..., or into another package's src/) — relative imports that escape lib create duplicate library instances Dart treats as unrelated.rethrow, never throw e. throw e resets the stack trace to the rethrow site; rethrow preserves the origin — and stack-trace fidelity is the product.For everything else — naming, asynchrony, nullability, parameters, equality — follow Effective Dart; a frontier model and dart analyze already apply most of it, so it isn't restated here. The full checklist (and the standard the review skill cites) is in references/effective-dart.md.
Prefer self-documenting code — clear names and structure so comments become unnecessary.
Comment when:
Don't comment when:
dart doc gotchas (tooling behavior, not taste):
dart doc merges the pair and discards the setter's comment.@override, @internal); placed after, dart doc won't associate them with the declaration.Remaining doc-comment style (///, [bracket] references) is standard Effective Dart — see references/effective-dart.md.
© getsentry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .agents/skills/code-guidelines of getsentry/sentry-dart.
Open the folder on GitHubat commit 96d6367
Code Guidelines 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Code Guidelines this skillgetsentry/sentry-dart | 873 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Code Guidelinesgetsentry/sentry-react-native | 1.8k | — | ~3.2k | Automated safety check: Pass | MIT | |
| Flutter Pub ReleaseMixinNetwork/flutter-plugins | 512 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Squadron Workerd-markey/squadron | 138 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Layered ArchitectureVeryGoodOpenSource/vgv-ai-flutter-plugin | 169 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Update Dependenciessesori-ai/sesori_apps_monorepo | 126 | — | ~7.8k | Automated safety check: Pass | Custom licence |
getsentry/sentry-react-native
Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.
MixinNetwork/flutter-plugins
Prepare and draft a pub.dev release for a package in the flutter-plugins monorepo.
d-markey/squadron
A skill your agent uses when building, writing, or refactoring Squadron workers, worker pools, worker services, or using squadronbuilder annotations (@SquadronService, @SquadronMethod) for…
VeryGoodOpenSource/vgv-ai-flutter-plugin
VGV layered monorepo architecture in Flutter: four layers Data, Repository, Business Logic, and Presentation, unidirectional dependency rules, and model transformation across layers.
sesori-ai/sesori_apps_monorepo
Weekly dependency update workflow for Sesori Apps Monorepo. An agent skill from sesori-ai/sesori_apps_monorepo.
sdegenaar/liquid_glass_widgets
Mastery guide and architectural rules for liquidglasswidgets.
getsentry/sentry-dart
Enforce Sentry Dart/Flutter SDK test conventions for naming, structure, and fixtures.
getsentry/sentry-dart
Shape non-trivial work before writing it — decide the modules, the seams, and the public API surface up front.
getsentry/sentry-dart
Three-axis review of the branch diff — Standards (this repo's documented standards + public API surface), Spec (the originating Linear issue / PR), and Correctness (runtime bugs + the SDK threat…
getsentry/sentry-dart
A discipline for hard bugs, flaky tests, CI hangs, and performance regressions in this SDK.
Categories
Enforce Sentry Dart/Flutter SDK code guidelines for implementation, refactoring, and review. Code Guidelines is an agent skill from getsentry/sentry-dart, published by the product's own GitHub organization. Enforce Sentry Dart/Flutter SDK code guidelines for implementation, refactoring, and review.
Code Guidelines fits situations like: implementing features; adding new functionality; refactoring code; modifying public API surface.
Run `npx skills add getsentry/sentry-dart --skill code-guidelines -a claude-code`. Or copy the skill folder (.agents/skills/code-guidelines in getsentry/sentry-dart) into .claude/skills/code-guidelines in your project. Claude Code loads it when a task matches its description.
Run `npx skills add getsentry/sentry-dart --skill code-guidelines -a codex`. Or copy the skill folder (.agents/skills/code-guidelines in getsentry/sentry-dart) into .agents/skills/code-guidelines in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add getsentry/sentry-dart --skill code-guidelines -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-guidelines, .gemini/skills/code-guidelines, .github/skills/code-guidelines and .opencode/skills/code-guidelines in your project.
Going by SKILL.md and its folder, Code Guidelines needs the command-line tools its instructions call (dart).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Code Guidelines is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Code Guidelines: Code Guidelines (getsentry/sentry-react-native, 1.8k stars), Flutter Pub Release (MixinNetwork/flutter-plugins, 512 stars), Squadron Worker (d-markey/squadron, 138 stars) and Layered Architecture (VeryGoodOpenSource/vgv-ai-flutter-plugin, 169 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
getsentry (a GitHub organization, an official publisher) maintains it in getsentry/sentry-dart, which has 873 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.
Source: getsentry/sentry-dart on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.