Agent skill

Validating Models Against Logs

by villith in villith/relink-logs

A skill your agent uses when a reverse-engineered table or formula — SBA gauge weights, the damage-cap model, stun values, any per-hit quantity the parser computes — needs verifying against real…

MITAuto-check passed

Install Validating Models Against Logs

skills CLI
$ npx skills add villith/relink-logs --skill validating-models-against-logs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install villith/relink-logs validating-models-against-logs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/villith/relink-logs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/validating-models-against-logs .claude/skills/validating-models-against-logs && rm -rf skills-src

Use ~/.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/

Facts

Skill name
validating-models-against-logs
GitHub stars
157
Token cost
~1.7k tokens
SKILL.md length
888 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a reverse-engineered table or formula — SBA gauge weights, the damage-cap model, stun values, any per-hit quantity the parser computes — needs verifying against real…

  • Works in 5 steps: Implement the model as a pure… → Write a committed diag example in… → The sweep must emit its own worklist:… → …
  • A reverse-engineered table
  • SKILL.md covers Overview, The loop, Key moves and Repo mechanics (copy, don't…, plus 2 more sections
  • Calls cargo

What it does

Validating Models Against Logs is an agent skill from villith/relink-logs. Use when a reverse-engineered table or formula — SBA gauge weights, the damage-cap model, stun values, any per-hit quantity the parser computes — needs verifying against real gameplay; when pricing ids or values the game data does not author; when tempted to trust a fit from one or two samples; or when about to ask for a live capture round to check derived constants.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Relink Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. The licence is MIT.

When your agent uses it

  • A reverse-engineered table
  • Formula — SBA gauge weights
  • The damage-cap model
  • Any per-hit quantity the parser computes — needs verifying against real gameplay

Example prompts

  • “/validating-models-against-logs”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Implement the model as a pure function/table in the parser crate, loadable
  2. Write a committed diag example in src-tauri/examples/ that replays
  3. The sweep must emit its own worklist: every unexplained value, ranked
  4. Resolve the top worklist entries — game data first (the extracted table
  5. Re-run the sweep. Iterate until the worklist is empty. The sweep then

What it can do on your machine

Read from SKILL.md and the folder at commit 8251151. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Validating Models Against Logs loads about 1.7k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 888 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~100
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from villith/relink-logs at commit 8251151, republished under its MIT licence (© villith). 888 words, ~1,693 tokens.

Download SKILL.mdSave it as .claude/skills/validating-models-against-logs/SKILL.md (or your agent's skills folder).
name
validating-models-against-logs
description
Use when a reverse-engineered table or formula — SBA gauge weights, the damage-cap model, stun values, any per-hit quantity the parser computes — needs verifying against real gameplay; when pricing ids or values the game data does not author; when tempted to trust a fit from one or two samples; or when about to ask for a live capture round to check derived constants.

Validating Computed Models Against the Log Corpus

Overview

src-tauri/logs.db (the dev copy — the AppData one is empty) is not just history: it is a labeled measurement corpus. Encounters store the raw event log, and the hook-read fields in it are ground-truth labels a model can be scored against offline, hit by hit: captioned SBA gains (SbaGainCause::Skill(action)), the per-hit damage_cap on every DamageEvent, buff lists, stun deltas. Core principle: exhaust the corpus before asking for a live round. The SBA weight table went to 68/68 verified (character, action) values with zero live play; treat a proposed capture session as a smell that the corpus hasn't been mined yet.

The loop

  1. Implement the model as a pure function/table in the parser crate, loadable by examples (the sba_weights.rs / assets/*.json shape).
  2. Write a committed diag example in src-tauri/examples/ that replays EVERY log and scores model vs ground truth per (character, id). Give it three modes: corpus-wide sweep, single-log detail dump (--dump-log — for identifying what an unknown id physically IS from its damage signature and company), and targeted-id measurement.
  3. The sweep must emit its own worklist: every unexplained value, ranked by implicated magnitude, with a candidate solve where one exists (always printing n and max deviation).
  4. Resolve the top worklist entries — game data first (the extracted table catalog beats guessing), measurement decides when the data is ambiguous or silent. Write provenance into the table (see below).
  5. Re-run the sweep. Iterate until the worklist is empty. The sweep then becomes the regression gate you re-run after every game patch.

Key moves

  • Absolute vs scale-ambiguous — decide first. Cap values are absolute: score them exact, no tolerance bands, ever. Gauge-like quantities are only measurable up to a per-fight constant K: find an authored anchor present in every log (LinkAttack = 5.0 for SBA) and divide it out. K cancellation is what makes offline verification possible at all; without an anchor, ratios between values are still exact evidence.
  • Zero is a measurement, not a default. N hits with zero associated ground-truth signal proves the value is 0 — and the claim must state N ("317 summon hits across four characters, 0 captioned grants"). File it with that provenance, same standard as a nonzero value.
  • Exact clusters beat noisy fits. Captioned local slots yield exact repeated values (Ferry 9995 measured as precisely {0.0439, 0.1385, 0.2}); indirect/remote fits are leads only. A fit with n≤2 or high deviation goes on the worklist, never in the table — the remote n=2 solves for action 80000 said 0.16–0.58; the corpus said exactly 0.
  • Classify misses honestly, in named buckets (contaminated, unknown-id, no-evidence…), and drop contaminated samples WHOLE — contamination must never read as model drift. Fit with medians, report sums separately: sums are pulled by unobservable contamination (K_med < K_total turned out to be invisible damage-taken gauge, not drift).
  • Errors must fail honest. Prefer the failure mode that under-claims (an explicit unnamed remainder) over one that invents values. Check the DIRECTION of residual error before accepting it as tolerable.
  • Provenance lives in the table. Every value carries a confidence tier (verified/high/med/low), its source, n, and the log ids it was measured from — so the next game patch's re-derivation re-verifies mechanically (the build_final.py MEAS pattern) instead of re-arguing.
Show full SKILL.md (354 more words)Show less

Repo mechanics (copy, don't re-derive)

  • Decode: Encounter::from_blob(&blob) → repopulate_event_log() → event_log(). Slot→character via sba_inference::character_aliases(&encounter.player_data) — identity comes from the roster, NOT the event log, and must alias both raw actor_index and slot keys. Open sqlite read-only. Copy the gather pattern from sba_share_check.rs / sba_grant_scan.rs.
  • A slot is trustworthy ground truth only when hook-read gains explain ≥50% of its polled total (LOCAL_READ_FRACTION) — measure on captioned local slots, validate models on them first, then check remotes.
  • Run examples with --release; run tests as cargo test -p gbfr-logs --lib <module> in DEBUG — the release test binary inherits the admin manifest and dies with "requires elevation" (os 740).
  • Worked examples: sba_grant_scan (targeted measurement, --dump-log, --taken-lag), sba_share_check (sweep + worklist + whole-fight tracking), sba_infer_score (shipped-pipeline replay scored against captioned truth), the cap_* family (per-hit damage_cap ground truth).

When a live round IS earned

Only when the corpus provably cannot discriminate (both branches of a stack-or-replace hypothesis produce identical stored logs; a character/id appears in no captioned local slot). Then: ONE targeted round with a written checklist, a control measurement on the LOCAL slot first (a failed control voids the experiment), single-variable deltas, and the anchor in view to pin K.

Common mistakes

MistakeReality
"We need a capture session to verify this"1,800+ logs already hold labeled per-hit ground truth. Mine them first; live time is the scarcest resource.
Trusting an n=1/n=2 solveSmall-n indirect fits have been off by ∞ (0.16 vs true 0). Worklist it; measure it from captioned locals.
Widening tolerance / fitting a fudge factor to make numbers passEvery mismatch is a missing input, wrong constant, or capture bug. Resolve by RE or mark unsupported — never curve-fit.
Reporting "no signal → value unknown"Absence over stated-N hits IS the measurement: the value is 0.
Reading sum-based statistics as model driftUnobservable contamination inflates sums, not medians. Compare both; investigate the gap before blaming the model.
A scan's null result reported as "not in the data"Say what you searched and what that method cannot see (case/spelling-insensitive sweeps: spartsGageRate hid from every spArtsRate grep).
One-off scratch scripts for scoringCommit the example. It is the patch-day regression gate and the next id's curation tool.

© villith, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/validating-models-against-logs of villith/relink-logs.

Open the folder on GitHubat commit 8251151

Compare with similar skills

Validating Models Against Logs 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.

Validating Models Against Logs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Validating Models Against Logs this skillvillith/relink-logs157—~1.7kAutomated safety check: PassMIT
Protocol Reverse Engineeringwshobson/agents40k8 repos~3.2kAutomated safety check: PassMIT
Reverse Engineering Malware With Ghidramukul975/Anthropic-Cybersecurity-Skills34k—~3kAutomated safety check: PassApache-2.0
Dsl Vm Reversesickn33/agentic-awesome-skills47k1 repos~2.4kAutomated safety check: PassMIT
Protocol Reversezhaoxuya520/reverse-skill40k2 repos~620Automated safety check: WarnMIT
macOS Reversezhaoxuya520/reverse-skill40k2 repos~366Automated safety check: PassMIT

Similar skills

  • Master network protocol reverse engineering including packet analysis, protocol dissection, and custom protocol documentation.

    40k GitHub starsUsed in 8 repos~3.2k tokens
    SecurityAuto-check passed
  • Reverse Engineering Malware With Ghidra

    mukul975/Anthropic-Cybersecurity-Skills

    Reverse engineers malware binaries using NSA's Ghidra disassembler and decompiler to study internal logic, cryptographic routines, C2 protocols, and evasion techniques at the assembly and pseudo-C…

    34k GitHub stars~3k tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Dsl Vm Reverse

    sickn33/agentic-awesome-skills

    Reverse JavaScript-based custom DSL/VM interpreters and risk-control engines: identify IIFE/switch-based opcode dispatch, extract opcode tables, and capture runtime semantics.

    47k GitHub starsUsed in 1 repo~2.4k tokens
    SecurityAuto-check passed
  • Protocol Reverse

    zhaoxuya520/reverse-skill

    A skill your agent uses for authorized reverse engineering of custom binary protocols, Protobuf/gRPC, WebSocket frames, and PCAP-driven protocol recovery.

    40k GitHub starsUsed in 2 repos~620 tokens
    Backend & APIsAuto-check: warnings
  • macOS Reverse

    zhaoxuya520/reverse-skill

    A skill your agent uses for authorized macOS and Mach-O reverse engineering including codesign, Objective-C/Swift recovery, endpoint security surfaces, and Apple platform malware analysis.

    40k GitHub starsUsed in 2 repos~366 tokens
    SecurityAuto-check passed
  • Protocol Reverse

    sickn33/agentic-awesome-skills

    Authorized reverse engineering of custom binary protocols, Protobuf/gRPC schemas, WebSocket frames, and PCAP-driven protocol recovery.

    47k GitHub starsUsed in 1 repo~689 tokens
    Backend & APIsAuto-check passed

More from villith/relink-logs

  • Building Gbfr Logs

    villith/relink-logs

    A skill your agent uses when building, compiling, packaging, or producing an installer/MSI for the GBFR Logs Tauri app, or when a build fails with "path matching hook.dll not found" or build.rs…

    157 GitHub stars~1.3k tokensUpdated 13 days ago
    Auto-check passed
  • A skill your agent uses when a Granblue Fantasy Relink game patch breaks the GBFR Logs hook — signatures no longer match, "Could not find match for pattern" / "Could not find <offset" warnings…

    157 GitHub stars~7.5k tokensUpdated 13 days ago
    Auto-check passed
  • A skill your agent uses when working on, discussing, reviewing or debugging the Relink Logs analysis view (the log viewer's Analysis mode) — pins, drilling, grouping, the table/timeline/events…

    157 GitHub stars~4.1k tokensUpdated 13 days ago
    Auto-check passed

Questions about Validating Models Against Logs

What does Validating Models Against Logs do?

A skill your agent uses when a reverse-engineered table or formula — SBA gauge weights, the damage-cap model, stun values, any per-hit quantity the parser computes — needs verifying against real…. Validating Models Against Logs is an agent skill from villith/relink-logs. Use when a reverse-engineered table or formula — SBA gauge weights, the damage-cap model, stun values, any per-hit quantity the parser computes — needs verifying against real gameplay; when pricing ids or values the game data does not author; when tempted to trust a fit from one or two samples; or when about to ask for a live capture round to check derived constants.

When should I use Validating Models Against Logs?

Validating Models Against Logs fits situations like: A reverse-engineered table; formula — SBA gauge weights; the damage-cap model; any per-hit quantity the parser computes — needs verifying against real gameplay.

How do I install Validating Models Against Logs in Claude Code?

Run `npx skills add villith/relink-logs --skill validating-models-against-logs -a claude-code`. Or copy the skill folder (.claude/skills/validating-models-against-logs in villith/relink-logs) into .claude/skills/validating-models-against-logs in your project. Claude Code loads it when a task matches its description.

How do I install Validating Models Against Logs in Codex?

Run `npx skills add villith/relink-logs --skill validating-models-against-logs -a codex`. Or copy the skill folder (.claude/skills/validating-models-against-logs in villith/relink-logs) into .agents/skills/validating-models-against-logs in your project. Codex loads it when a task matches its description.

Can I use Validating Models Against Logs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add villith/relink-logs --skill validating-models-against-logs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/validating-models-against-logs, .gemini/skills/validating-models-against-logs, .github/skills/validating-models-against-logs and .opencode/skills/validating-models-against-logs in your project.

What does Validating Models Against Logs need to run?

Going by SKILL.md and its folder, Validating Models Against Logs needs the command-line tools its instructions call (cargo).

Does Validating Models Against Logs access the network?

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.

Is Validating Models Against Logs safe to install?

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.

What licence does Validating Models Against Logs use?

Validating Models Against Logs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Validating Models Against Logs use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Validating Models Against Logs?

Skills that share tags, products or a category with Validating Models Against Logs: Protocol Reverse Engineering (wshobson/agents, 40k stars), Reverse Engineering Malware With Ghidra (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Dsl Vm Reverse (sickn33/agentic-awesome-skills, 47k stars) and Protocol Reverse (zhaoxuya520/reverse-skill, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Validating Models Against Logs?

villith (a GitHub user) maintains it in villith/relink-logs, which has 157 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 25, 2026.

Source: villith/relink-logs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.