detection-signals

detection-signals is a skill for Claude Code, Codex from LinXiaoTao/FuckClaude. It costs 69 tokens per session (1,312 once invoked), scanned A, original, MIT.

A set of rules for detecting signals that may suggest a browser user is in China. It scans browser information locally and also reuses scoring functions in a server endpoint called /api/check.

In plain words
What is it for?
Use it to add signals such as time zone, language, browser, device, or font checks, assign their weights, and connect each signal to the scan display and server scoring.
Why use it?
It gives the project a consistent way to add, change, or remove detection signals while keeping browser and server estimates aligned. It also prevents detectors from making network requests.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions Claude Code.

Good fit Use it to add signals such as time zone, language, browser, device, or font checks, assign their weights, and connect each signal to the scan display and server scoring.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/linxiaotao/fuckclaude/detection-signals
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 LinXiaoTao/FuckClaude --skill detection-signals
Clone the repo
git clone --depth 1 https://github.com/LinXiaoTao/FuckClaude

Made for: Claude Code, Codex.

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 detection-signals

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

Your own site · 80×15
<a href="https://agentmods.dev/skills/linxiaotao/fuckclaude/detection-signals"><img src="https://agentmods.dev/badge/skills/linxiaotao/fuckclaude/detection-signals.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 69 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,312 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. 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.00069 $0.01312
Opus 5 $0.00034 $0.00656
Sonnet 5 $0.00014 $0.00262
Haiku 4.5 $0.00007 $0.00131

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

Security

Grade A, and why

detection-signals scanned grade A with 1 finding 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 11d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s "http://localhost:4321/api/check?format=json" \
skills/detection-signals/SKILL.md · 83 lines

How it starts

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

检测信号(Detection Signals)开发

本项目的核心是一组「中国用户」指纹信号:浏览器端跑扫描动画逐项检测,服务端 /api/check 复用同一批纯评分函数做估算。所有检测只读浏览器 API,零上传

信号解剖(src/config/signals.ts)

export type SignalId = 'timezone' | /* … */ | 'emoji'; // 先扩展联合类型

interface SignalDef {
  id: SignalId;
  weight: number;        // 所有信号权重之和必须恰好 = 100
  claudeUsed?: boolean;  // 仅当 Claude Code 真实机制读取该信号时为 true
  icon: string;          // 内联 SVG(24×24, stroke=currentColor, 复用 ICON 表)
  detect: () => DetectOutcome | Promise<DetectOutcome>; // 支持 async(如 UA-CH 高熵值)
}

interface DetectOutcome {
  raw: string;   // 展示给用户的检测值,如 'Asia/Shanghai'、'none detected'
  score: number; // 0..1 的「中国相似度」;≥0.25 记为命中,≥0.6 为 high
}
  • detect() 内部禁止网络请求;异常无需自行兜底,调用方 detect.ts 已 try/catch。
  • 探测字体用现成的 isFontAvailable(font, ctx)(canvas 宽度探测)。
  • 读 UA-CH 用 uaData() helper;高熵值(model 等)需 await getHighEntropyValues,拿不到时降级为纯 UA 正则。

新增一个信号的完整清单

  1. signals.ts
    • SignalId 联合类型加新 id。
    • detectXxx();若服务端(仅凭请求头)也能测,把纯打分逻辑抽成 export function scoreXxx(probe: string) 供 API 复用(参照 scoreTimezone / scoreLanguages / scoreCnBrowser / scoreCnDevice)。
    • SIGNALS 数组按权重降序插入,并重新分配权重使总和 = 100
    • 图标加进 ICON 表(线性 stroke 风格,与现有一致)。
  2. i18n/ui.ts(en + zh 两份都要)
    • 新增 signal.<id>.namesignal.<id>.desc
    • 以下文案硬编码了信号数量,改动数量时同步更新: signals.sub(N 项指纹)、how.p2(N-1 项叠加指纹列表)、faq.a2(其余 N-1 项)。
  3. pages/api/check.ts(仅当服务端可测)
    • analyze()measured map 增加条目,复用第 1 步导出的纯评分函数。
    • 更新文件头注释与 note 里的 browser-only 列表及可测权重数(当前 62/100)。
  4. layouts/BaseLayout.astro:JSON-LD featureList 追加 t('signal.<id>.name')
  5. README.md:英文与中文两张「信号与权重」表、API 段落的可测权重描述。

打分约定

  • 决定性证据(如系统时区命中中国时区、检出国产厂商字体)→ score 接近 1。
  • 全球化品牌 / 弱相关线索(如小米设备、emoji 风格)→ 0.4–0.7,并压低 weight。
  • 检不到 / 不适用 → { raw: 'none detected', score: 0 },不要抛错。
  • 阈值语义:signalVerdict — ≥0.6 high、≥0.25 medium(命中)、其余 low。

验证(必做)

pnpm build                 # tsc + astro 构建必须通过
pnpm dev                   # http://localhost:4321

Read the full file on GitHub · 83 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. 11d ago First seen · 83 lines · 69 tokens per session scan A b528713481eb

Subscribe to this mod's changes

detection-signals is a skill published in the GitHub repository LinXiaoTao/FuckClaude (941 stars, last pushed 4d ago), licensed MIT. It adds 69 tokens to every session and 1,312 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). 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

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

insight-error-page

Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…

vercel/next.js · 83 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens

next-partial-prefetching-adoption

Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…

vercel/next.js · 103 tokens