fingerprint-ci-gate

fingerprint-ci-gate is a skill for Claude Code from liarjsdev/liarjs-skills. It costs 95 tokens per session (951 once invoked), scanned A, original, MIT.

A build-pipeline check for browser fingerprint changes. It compares a new scan with a saved known-good scan or fails the job when its score falls below a chosen minimum.

In plain words
What is it for?
Adding fingerprint checks to GitHub Actions, GitLab CI, or another automated build system, saving scan baselines, and reviewing regressions.
Why use it?
It catches fingerprint changes during development, before they cause traffic to be rejected. A baseline diff shows exactly which checks changed.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Good fit Adding fingerprint checks to GitHub Actions, GitLab CI, or another automated build system, saving scan baselines, and reviewing regressions.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/liarjsdev/liarjs-skills/fingerprint-ci-gate
Install

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.

Any agent
npx skills add liarjsdev/liarjs-skills --skill fingerprint-ci-gate
Clone the repo
git clone --depth 1 https://github.com/liarjsdev/liarjs-skills

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 fingerprint-ci-gate

README.md
[![agentmods](https://agentmods.dev/badge/skills/liarjsdev/liarjs-skills/fingerprint-ci-gate/github.svg)](https://agentmods.dev/skills/liarjsdev/liarjs-skills/fingerprint-ci-gate)
Your own site
<a href="https://agentmods.dev/skills/liarjsdev/liarjs-skills/fingerprint-ci-gate"><img src="https://agentmods.dev/badge/skills/liarjsdev/liarjs-skills/fingerprint-ci-gate/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 fingerprint-ci-gate

Your own site · 80×15
<a href="https://agentmods.dev/skills/liarjsdev/liarjs-skills/fingerprint-ci-gate"><img src="https://agentmods.dev/badge/skills/liarjsdev/liarjs-skills/fingerprint-ci-gate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 95 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 951 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
  • Socket pass 5 Aug 2026
  • Snyk pass 5 Aug 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.00095 $0.00951
Opus 5 $0.00048 $0.00476
Sonnet 5 $0.00019 $0.00190
Haiku 4.5 $0.00010 $0.00095

Measured 10d ago against content hash 5ad9306b2d68, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

fingerprint-ci-gate 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 10d 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.

skills/fingerprint-ci-gate/SKILL.md · 91 lines

How it starts

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

Fail the build, not the ban rate

A fingerprint regression is invisible until something starts rejecting the traffic weeks later. liarjs turns it into a diff in a pull request: scan, save the JSON, compare the next run against the saved baseline.

Node 22 or newer, a Chromium in the image, zero runtime dependencies.

Runner note: give the container enough shared memory (--shm-size=1g on Docker, or a /dev/shm mount) and the capabilities Chrome's own sandbox needs. Leave the browser sandbox enabled; a scan that will not start is an image problem to fix in the image.

The two mechanisms

Absolute floor. Exits 1 when the score is below the number given, so the job fails:

npx [email protected] --headless --min-score 60

Baseline diff. Prints only the checks whose status moved between two saved scans:

npx [email protected] --json scan.json                # write the current result
npx [email protected] diff baseline.json scan.json    # what changed since the known-good run

Prefer the diff in any environment where some checks can never pass. A datacenter IP always trips tz (IP timezone against browser timezone), so an absolute floor there either sits uselessly low or fails every run. The diff only speaks up when something actually moved.

Exit codes: 0 clean, 1 below --min-score, 2 an error such as no browser found.

GitHub Actions

- uses: actions/setup-node@v4
  with:
    node-version: 22

- name: Fingerprint scan
  run: npx [email protected] --headless --json scan.json --min-score 60

- name: Compare against the baseline
  run: npx [email protected] diff baseline.json scan.json

- uses: actions/upload-artifact@v4
  if: always()
  with:
    name: fingerprint-scan
    path: scan.json

references/ci-recipes.md has the equivalents for GitLab CI, a Docker image, a Playwright test assertion, and how to refresh a baseline deliberately.

Choosing the gate

  • Pin the version ([email protected] or a dev dependency in the lockfile). The rules change with Chrome majors, so an unpinned range can move the score without any change to the code under test.
  • A headless job scores lower than a headed one by design. Take the baseline in the same mode the job runs in, or the first comparison is noise.
  • Commit baseline.json and refresh it in its own commit, with the diff output in the message. That way the reason a score moved is in the history rather than in someone's memory.
  • Store scan.json as a build artifact. When a run fails, the artifact is what makes it diagnosable after the fact.

Read the full file on GitHub · 91 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 10d ago First seen · 91 lines · 95 tokens per session scan A 5ad9306b2d68

Subscribe to this mod's changes

fingerprint-ci-gate is a skill published in the GitHub repository liarjsdev/liarjs-skills (8 stars, last pushed 1mo ago), licensed MIT. It adds 95 tokens to every session and 951 once invoked, about $0.0005 per session on Opus 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-31.

Related

Other skills, from other repositories

setup-solution

Creates a Dataverse publisher and solution, then adds Power Pages site components to the solution for ALM and deployment management. Use when asked to: "create solution", "set up solution", "add to solution", "package site into solution", "create publisher", "solutionize my site", or "set up ALM for my site".

microsoft/power-platform-skills · 73 tokens

setup-pipeline

Sets up a Power Platform Pipeline for automated Power Pages deployments. Power Platform Pipelines is Microsoft's native CI/CD tool built into the Power Platform — no external infrastructure required. Use when asked to: "set up ci/cd", "create pipeline", "setup pipeline", "set up power platform pipelines", "create…

microsoft/power-platform-skills · 118 tokens

configure-env-variables

Configures environment variables for Power Pages site settings to support ALM across environments. Creates environment variable definitions in Dataverse, guides the user through linking site settings to those variables via the Power Pages Management app, adds the variables to the solution, and generates a…

microsoft/power-platform-skills · 119 tokens

force-link-environment

Force-links a development or target environment to a Power Platform Pipelines host, overriding any existing association with a previous host. Use when creating a deploymentenvironments record fails with "this environment is already associated with another pipelines host", or when intentionally migrating an environment…

microsoft/power-platform-skills · 181 tokens

diagnose-deployment

Surfaces PAC CLI upload errors and Dataverse async operation errors, pattern-matches against a known failure catalog, and optionally auto-fixes identified issues. Use when asked to: "diagnose deployment", "debug deployment", "deployment failed", "show deployment errors", "fix deployment issues", "show upload logs"…

microsoft/power-platform-skills · 82 tokens

add-azuredevops

Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.

microsoft/power-platform-skills · 37 tokens