rodydavis/signals.dart/signals-lint
Claude Code and agent skill by rodydavis/signals.dart
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Standardized compiler diagnostics, static analysis lints, and automated IDE quick-fixes.
Install
npx vskill@latest install rodydavis/signals.dart/signals-lintSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
signals_lint Tooling & Rules
This skill covers working with static code analysis, custom compiler warning diagnostics, and automated quick-fixes in the signals.dart ecosystem.
🚀 Activation & Setup
Ensure the plugin is active in your project to enable real-time IDE diagnostics and fixes:
🛡️ Lint Rules Reference
1. signals_avoid_create_in_build_method
Flags instances where a signal or computed variable is created inside a Flutter build method.
- Problem: Creating state during build causes state to reset on every rebuild.
- Solution: Move the creation to the class fields or initialize inside a state lifecycle hook.
2. signals_avoid_deprecated_watch_extension
Flags uses of deprecated BuildContext.watch() and BuildContext.unwatch() extensions.
- Problem: Watch extensions can cause broad stateful widget lifecycle overhead.
- Solution: Use localized
SignalBuilderor inherit fromSignalWidget/SignalStatefulWidget.
3. signals_avoid_deprecated_signals_mixin
Flags usage of deprecated with SignalsMixin mixins on StatefulWidget states.
- Problem: Inherits stateful widget tracking hooks unnecessarily.
- Solution: Inherit from
SignalStatefulWidgetinstead.
4. signals_prefer_named_builder
Enforces named builder: callbacks in SignalBuilder and Watch elements instead of positional arguments.
- Reason: Guarantees standard API parameters and readability.
5. signals_prefer_unified_options
Flags direct creator configuration arguments (e.g. autoDispose: true).
- Solution: Bundle configuration properties under unified options classes (e.g.,
options: SignalOptions(autoDispose: true)).
💡 Automated IDE Code Assists (Quick-fixes)
Place your cursor on the relevant class name or widget instantiation inside your IDE to reveal these automatic assists via the quick-fix menu (Cmd+. or Alt+Enter):
- `WrapWithSignalBuilder`: Wraps any widget expression inside
SignalBuilder(builder: (context) => ...). - `ConvertStatelessToSignalWidget`: Refactors a standard
StatelessWidgetinto aSignalWidgetinstantly. - `ConvertStatefulToSignalStatefulWidget`: Refactors a standard
StatefulWidgetto aSignalStatefulWidget. - `MigrateSignalsMixinToSignalStatefulWidget`: Strips the legacy
SignalsMixinand converts the class structure toSignalStatefulWidget. - `MigrateWatchToSignalBuilder`: Converts legacy
Watch(...)instances into cleanSignalBuilderwidgets.
Security
- Security scanPassed, 95 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/signals-lint/SKILL.md
Popularity
- Repository stars
- 782
- Repository forks
- 84
- 7-day trend score
- 33
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
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/rodydavis/signals.dart/signals-lint)