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.
npx agentmods add rules/ocean-industries-concept-lab/openbridge-webcomponents/setpointgit clone --depth 1 https://github.com/Ocean-Industries-Concept-Lab/openbridge-webcomponentsWrote 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/ocean-industries-concept-lab/openbridge-webcomponents/setpoint)<a href="https://agentmods.dev/rules/ocean-industries-concept-lab/openbridge-webcomponents/setpoint"><img src="https://agentmods.dev/badge/rules/ocean-industries-concept-lab/openbridge-webcomponents/setpoint.svg" alt="Measured on agentmods" 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 | $0.00000 | $0.04341 |
| Opus 5 | $0.00000 | $0.02171 |
| Sonnet 5 | $0.00000 | $0.00868 |
| Haiku 4.5 | $0.00000 | $0.00434 |
Grade A, and why
setpoint 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 4d 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.
How it starts
The opening of the file, as written. The whole thing — 375 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Setpoint System
These instructions apply to the setpoint subsystem — the cross-cutting design layer, state management, and animation logic used by all instrument components that display a setpoint marker.
⚠️ IMPORTANT: Cross-Cutting Concern
The setpoint system spans three rendering paths and 15+ instrument components:
- Linear:
external-scale.ts→bar-vertical,bar-horizontal,gauge-vertical,gauge-horizontal,gauge-trend- Radial:
watch.ts→compass,heading,rudder,speed-gauge,gauge-radial,instrument-radial- Thruster:
thruster.ts→azimuth-thruster(also uses radial viawatch.ts)When modifying setpoint logic:
- Changes to
setpoint.tsaffect ALL instruments — verify rendering in all three paths- Changes to
setpoint-mixin.tsaffect single-setpoint instruments (most of them)- Changes to
setpoint-bundle.tsaffect multi-setpoint instruments (compass,heading,azimuth-thruster)- Rendering changes must be mirrored across
external-scale.ts,watch.ts, andthruster.ts
Architecture Overview
The setpoint system is split into three layers:
┌─────────────────────────────────────────────────────────────────────────────┐
│ setpoint.ts (Design Layer) │
│ │
│ Pure visual states + drawing functions + animation constants │
│ • SetpointVisualState: notEqual | equal | equalZero | focus │
│ • SetpointColorMode: enhanced | regular (internal rendering enum) │
│ • setpointOverride: boolean (public API — skips disabled derivation) │
│ • drawSetpointMarker(): SVG at origin, caller applies transforms │
│ • computeAtSetpoint(): Unified deadband comparison │
│ • deriveRadialSetpointConfig(): State → visual config for radial │
│ • Animation: SETPOINT_ANIMATION_DURATION_MS, cssSafeAngle(), │
│ shortestAngularDistance(), getSetpointAnimationDurationMs() │
└─────────────────────────────────────────────────────────────────────────────┘
│
┌────────────────┴────────────────┐
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────────────────┐
│ setpoint-mixin.ts │ │ setpoint-bundle.ts │
│ (Single-setpoint API layer) │ │ (Multi-setpoint API layer) │
│ │ │ │
│ Lit mixin that adds 10 │ │ Plain class — one per setpoint axis. │
│ @property() declarations │ │ Same property set as mixin but without │
│ + computeAtSetpoint() + │ │ @property() decorators. │
│ animation state management │ │ sync() for bulk update in willUpdate() │
│ │ │ onAnimationEnd callback for re-render │
│ Used by: │ │ │
│ • speed-gauge │ │ Used by: │
│ • rudder │ │ • compass (_angleSp) │
│ • instrument-radial │ │ • heading (_headingSp) │
│ • gauge-radial │ │ • azimuth-thruster (_angleSp, _thrustSp)│
│ • bar-vertical (indirect) │ │ │
│ • bar-horizontal (indirect) │ │ │
│ • gauge-vertical (indirect) │ │ │
│ • gauge-horizontal │ │ │
│ • gauge-trend (indirect) │ │ │
└──────────────────────────────┘ └──────────────────────────────────────────┘
│ │
└────────────────┬────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Three Rendering Paths │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ external-scale │ │ watch.ts │ │ thruster.ts │ │
│ │ (linear bars) │ │ (radial ring) │ │ (thrust bar in azimuth) │ │
│ │ │ │ │ │ │ │
│ │ renderSingle- │ │ Internal confirm │ │ renderThrusterSetpoint() │ │
│ │ Setpoint() │ │ detection + │ │ with animate/non-animate │ │
│ │ CSS transform │ │ cssSafeAngle() │ │ code paths │ │
│ │ for animation │ │ short-path anim │ │ │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
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.
- 4d ago First seen · 375 lines · 0 tokens per session scan A c0adc3ab1174
setpoint is a cursor rule published in the GitHub repository Ocean-Industries-Concept-Lab/openbridge-webcomponents (91 stars, last pushed today), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 4,341 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-30.
Other cursor rules, from other repositories
cursorrules
Read and follow AGENTS.md for all development conventions.
static-analysis
Run local static analysis and fix new issues before finishing a task.
sigil-conventions
All CSS variables use the --s- prefix: var(--s-primary), var(--s-surface), etc.
backend
Backend API coding standards with clean architecture (Router/Service/Repository pattern).
market
Market research standards - trap detection, keyless-first sourcing, LAW enforcement, deterministic compute.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.