Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/inventwo/ioBroker.autodartsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/inventwo/iobroker.autodarts/autodarts-patterns)<a href="https://agentmods.dev/rules/inventwo/iobroker.autodarts/autodarts-patterns"><img src="https://agentmods.dev/badge/rules/inventwo/iobroker.autodarts/autodarts-patterns/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/inventwo/iobroker.autodarts/autodarts-patterns"><img src="https://agentmods.dev/badge/rules/inventwo/iobroker.autodarts/autodarts-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.00532 |
| Opus 5 | $0.00000 | $0.00266 |
| Sonnet 5 | $0.00000 | $0.00106 |
| Haiku 4.5 | $0.00000 | $0.00053 |
Grade A, and why
autodarts-patterns scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Autodarts Patterns
Architecture
main.js— adapter entry (Autodarts extends utils.Adapter); polling loop, state routinglib/throw.js— single throw logiclib/visit.js— visit logic (3 darts)lib/trafficLight.js— traffic light state managementlib/hardware.js— hardware control (lighting, power)lib/config.js— configuration validationlib/httpHelper.js— HTTP helper functionslib/systemInfo.js— system info (version, host)lib/tools.js— Tools addon integration
API communication
- Local Board Manager at
http://<host>:<port>/ - No authentication required (local network only)
- Endpoints:
/api/state,/api/version,/api/config,/api/host - Use native
node:httpvialib/httpHelper.makeRequest() - On network error: set
onlinetofalse, traffic light to red
Polling
- Managed in
main.jsvia chainedsetTimeout(notsetInterval) - Interval:
adapter.config.intervalSec(seconds, default 1) - Slower interval when offline (
offlineIntervalMs) - Signature-based deduplication prevents processing duplicate throw data
State creation
Use extendObjectAsync (not setObjectNotExistsAsync):
await this.extendObjectAsync("throw.current", {
type: "state",
common: {
name: { en: "Current throw score", de: "Aktueller Wurf-Score" },
type: "number",
role: "value",
read: true,
write: false,
},
native: {},
});
State naming
- Throws:
throw.*, visits:visit.* - Traffic light:
trafficLight.* - Connection:
online - System info:
systemInfo.* - Hardware:
hardware.* - Tools addon:
tools.*
Pitfalls
- Do not add axios or other HTTP libraries
- Always provide bilingual state names (
en+de) - Clean up
pollTimer,versionTimer, andresetTimersinonUnload - Use
setState()without callback (returns Promise) — not deprecatedsetStateAsync()
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 69 lines · 0 tokens per session scan A d84224f4ec7b
autodarts-patterns is a cursor rule published in the GitHub repository inventwo/ioBroker.autodarts (4 stars, last pushed 6d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 532 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
watch-radial-instruments
Source: docs/agents/watch-radial-instruments.md Regenerate: npm run agents:sync -w packages/openbridge-webcomponents -->.
automation-components
Source: docs/agents/automation-components.md Regenerate: npm run agents:sync -w packages/openbridge-webcomponents -->.
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
cli-error-handling
CLI command error handling patterns.