tik4net: Skill for Claude Code

.claude/skills/winbox-native-dev/SKILL.md

winbox-native-dev is a skill for Claude Code from danikf/tik4net. It costs 211 tokens per session (6,662 once invoked), scanned A, original, Apache-2.0.

A development guide for extending WinBoxNative, a C# transport that communicates with MikroTik's WinBox protocol. It covers structured data operations, field encoding, actions, and streaming monitors.

In plain words
What is it for?
Use it to add or fix handler mappings, field encoders and decoders, list or singleton fields, action commands, and streaming monitors.
Why use it?
It reduces the risk of guessing how protocol values are represented or mapped to the C# code.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is danikf/tik4net's own configuration. It tells Claude Code how to work on tik4net itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything tik4net configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python Tools/probes/jg_analyze.py "$JG" # summary.

Reuse

Borrowing it

Nothing to install: this file belongs to danikf/tik4net. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/danikf/tik4net/master/.claude/skills/winbox-native-dev/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/danikf/tik4net

Made for: Claude Code.

Wrote 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.

agentmods badge for winbox-native-dev

README.md
[![agentmods](https://agentmods.dev/badge/skills/danikf/tik4net/winbox-native-dev/github.svg)](https://agentmods.dev/skills/danikf/tik4net/winbox-native-dev)
Your own site
<a href="https://agentmods.dev/skills/danikf/tik4net/winbox-native-dev"><img src="https://agentmods.dev/badge/skills/danikf/tik4net/winbox-native-dev/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.

agentmods 80×15 button for winbox-native-dev

Your own site · 80×15
<a href="https://agentmods.dev/skills/danikf/tik4net/winbox-native-dev"><img src="https://agentmods.dev/badge/skills/danikf/tik4net/winbox-native-dev.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 211 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,662 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00211 $0.06662
Opus 5.5 $0.00084 $0.02665
Sonnet 5.5 $0.00042 $0.01332
Haiku 4.5 $0.00021 $0.00666

Measured 19d ago against content hash 3c18b3ede397, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

winbox-native-dev 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 19d 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.

.claude/skills/winbox-native-dev/SKILL.md · 292 lines

How it starts

The opening of the file, as written. The whole thing — 292 lines — stays where its author put it; the contents beside it link to each section on GitHub.

WinBoxNative (M2) feature development

The native transport speaks the webfig /jsproxy M2 protocol (TCP 8291, EC-SRP5 + AES) — structured getall/get-singleton/set/add/… , NOT a terminal. To add or fix anything here you triangulate three sources of truth and map them onto the C# layer. Never guess a wire encoding — read it from master*.js ([[feedback_winbox_encoding_from_js]]).

The three sources of truth

1. .jg catalog — handler paths, field keys, wire types, window kind

A .jg is a tolerant JS object literal describing every WinBox window. It is the version-volatile source for handler numbers + field keys/types. Format reference: Docs/jg-catalog-format.md.

  • path:[a,b] → M2 handler (SYS_TO 0xFF0001). type:'map' = list (getall), 'item' = singleton (get-singleton), 'query'/'action'+pollcmd = streaming monitor, 'doit'/'action'+cmd = action verb.
  • id:'<prefix><hex>' → a field: prefix letter = wire type (u=u32, U=u32[], s=string, S=string[], b=bool, r=raw, m=addr, x=u64; uppercase = array), hex = the M2 key.
  • type:'<uitype>' on the node = the UI-semantic type that drives typed encoding (ipaddr, network, macaddr, enm, set, multinumberrange, numberrangelist, addr, …) — more specific than the wire type.
  • Wrappers: opt(present-flag bool) / not(negation bool) wrap a value leaf; maskid = the netmask/ range-end sibling key; values:{type:'dynamic',path:[…]} = a reference dropdown; values:{map:…} = a static enum; nameval:'…' = which field is the record's display name; pred:{type:'board',…} = board gating (a menu can have several windows for the same path, one per board class — see Gotchas).

Where the .jg lives

The catalog is MikroTik's file, version-volatile and not redistributed with this repository — so there is no fixed path to it. Obtain it one of these ways, in order of preference:

  • Library runtime cache — what WinboxNativeConnection actually parses, under %TEMP%/tik4net/<jgVersion>/*.jg. The version subdirectory is the catalog's own version, not the RouterOS version; list the directory to find it rather than assuming. Delete a version directory to force a re-fetch.
  • Dump one from a live router with WinboxDumpCatalogTest in the integration test project.
  • Fetch from webfig over plain HTTP: GET /webfig/<name>.jg with Accept-Encoding: gzip (without it the router answers HTTP 406).

Read the full file on GitHub · 292 lines

Changes

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.

  1. 19d ago Changed · +4 lines 3c18b3ede397
  2. 24d ago Changed · +13 lines 35a75a190702
  3. 1mo ago Changed · +20 lines 45889e49eeec
  4. 1mo ago Changed · +13 lines ce63e403b008
  5. 2mo ago First seen · 242 lines · 211 tokens per session scan A 9569f9b2ca40

Subscribe to this mod's changes

winbox-native-dev is a skill published in the GitHub repository danikf/tik4net (198 stars, last pushed yesterday), licensed Apache-2.0. It adds 211 tokens to every session and 6,662 once invoked, about $0.0008 per session on Opus 5.5. 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.

Related

Other skills, from other repositories

generate-code-cs

Generate the code from typespec for C#. Parameter: C# SDK repository root location .

Azure/azure-sdk-for-net · 26 tokens

translate-a-sample

Translate the Azure SDK sample from python to C# and generate markdownn file for the sample. Parameters: C# SDK repository root; python SDK repository root; Package name: one of Azure.AI.Projects, Azure.AI.Projects.Agents or Azure.AI.Extensions.OpenAI; The name of sample file in Python SDK repository.

Azure/azure-sdk-for-net · 90 tokens

author-test

Generate a test given sample. Parameters: C# SDK repository root; Package name: one of Azure.AI.Projects, Azure.AI.Projects.Agents or Azure.AI.Extensions.OpenAI; the sample to use as a starting point for the test.

Azure/azure-sdk-for-net · 68 tokens

opengis-skills

Use when AI coding assistant needs GIS/CAD/C#/AI/IoT/3D domain expertise. Index of 114 skills across 8 categories: gis (40), cad (21), csharp (12), ai (17), iot (4), 3d (6), demos (4), others (10). Tag-based search and on-demand loading for GDAL, GeoServer, MapServer, Leaflet, PROJ, PostGIS, DuckDB Spatial, GeoLibre…

znlgis/opengis-skills · 166 tokens

fluence-consumer-starter

Create a new Fluence.Wpf consumer WPF app, a NavigationView MVVM shell, or a Windows Settings-inspired shell from the installed Fluence consumer templates.

sintaxasn/Fluence.Wpf · 39 tokens

opentelemetry-net-instrumentation

Provides guidance for implementing OpenTelemetry instrumentation in .NET codebases, covering tracing (Activities/Spans), metrics, logs, naming conventions, error handling, performance, SDK setup, resources, context propagation, and API design best practices.

Aaronontheweb/dotnet-skills · 56 tokens