Borrowing it
Nothing to install: this file belongs to hexianWeb/Third-Person-MC. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/hexianWeb/Third-Person-MC/main/.agent/skills/vtj-anti-patterns/SKILL.mdgit clone --depth 1 https://github.com/hexianWeb/Third-Person-MCWrote 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/skills/hexianweb/third-person-mc/vtj-anti-patterns)<a href="https://agentmods.dev/skills/hexianweb/third-person-mc/vtj-anti-patterns"><img src="https://agentmods.dev/badge/skills/hexianweb/third-person-mc/vtj-anti-patterns/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.
<a href="https://agentmods.dev/skills/hexianweb/third-person-mc/vtj-anti-patterns"><img src="https://agentmods.dev/badge/skills/hexianweb/third-person-mc/vtj-anti-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.1 | $0.00035 | $0.02224 |
| Opus 5 | $0.00017 | $0.01112 |
| Sonnet 5 | $0.00007 | $0.00445 |
| Haiku 4.5 | $0.00003 | $0.00222 |
Grade A, and why
vtj-anti-patterns 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 9d 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 — 290 lines — stays where its author put it; the contents beside it link to each section on GitHub.
vite-threejs Anti-Patterns (禁止事项)
Overview
本文档列出本项目中 禁止的做法。违反这些规则会导致 bug、内存泄漏或维护困难。
在编写任何代码之前,请先检查此列表。
禁止清单
1. 类型安全
| 禁止 | 原因 | 正确做法 |
|---|---|---|
as any |
隐藏类型错误 | 正确定义类型 |
@ts-ignore |
绕过检查 | 修复类型问题 |
@ts-expect-error |
绕过检查 | 修复类型问题 |
// ❌ FORBIDDEN
const value = someObject as any
// @ts-ignore
problematicCode()
// ✅ CORRECT
const value = someObject // 确保类型正确
2. 错误处理
| 禁止 | 原因 | 正确做法 |
|---|---|---|
| 空 catch 块 | 吞掉错误,调试困难 | 记录或重新抛出 |
| 删除失败的测试 | 隐藏问题 | 修复测试或标记 skip |
// ❌ FORBIDDEN
try {
riskyOperation()
}
catch (e) {} // 空 catch!
// ✅ CORRECT
try {
riskyOperation()
}
catch (e) {
console.error('Operation failed:', e)
// 或重新抛出
throw e
}
3. 资源管理
| 禁止 | 原因 | 正确做法 |
|---|---|---|
| 缺少 destroy() | 内存泄漏 | 涉及 Object3D 必须实现 |
| 不清理事件监听 | 内存泄漏 | destroy() 中 emitter.off() |
| 不 dispose 材质/几何体 | GPU 内存泄漏 | 销毁时 dispose() |
// ❌ FORBIDDEN: 创建 mesh 但没有 destroy
class BadComponent {
constructor() {
this.mesh = new THREE.Mesh(...)
this.scene.add(this.mesh)
emitter.on('event', this.handler.bind(this))
}
// 没有 destroy() → 泄漏!
}
// ✅ CORRECT
class GoodComponent {
constructor() {
this.mesh = new THREE.Mesh(...)
this.scene.add(this.mesh)
this._boundHandler = this.handler.bind(this)
emitter.on('event', this._boundHandler)
}
destroy() {
emitter.off('event', this._boundHandler)
this.scene.remove(this.mesh)
this.mesh.geometry?.dispose()
this.mesh.material?.dispose()
this.mesh = null
}
}
4. 输入处理
| 禁止 | 原因 | 正确做法 |
|---|---|---|
| 手动计算 NDC | 不一致,易出错 | 使用 iMouse.normalizedMouse |
| 直接监听 window 事件 | 绕过输入系统 | 使用 mitt 事件 |
| 匿名事件监听器 | 无法清理 | 保存函数引用 |
// ❌ FORBIDDEN
const x = (event.clientX / window.innerWidth) * 2 - 1
window.addEventListener('keydown', e => this.handle(e))
emitter.on('event', data => this.process(data))
// ✅ CORRECT
const ndc = this.iMouse.normalizedMouse
emitter.on('input:jump', this._boundHandler) // 保存引用
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.
- 9d ago First seen · 290 lines · 35 tokens per session scan A 19f98c840e7c
vtj-anti-patterns is a skill published in the GitHub repository hexianWeb/Third-Person-MC (191 stars, last pushed 1mo ago), licensed MIT. It adds 35 tokens to every session and 2,224 once invoked, about $0.0002 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-30.
Other skills, from other repositories
video-shot-demos
A workflow for creating animated HTML pages, one page per video shot, lesson segment, or narrated scene. It combines a shared player structure with different visual designs for each shot.
html-to-ugui
A pipeline for turning HTML interface prototypes into Unity UGUI Prefabs, which are reusable Unity interface objects. It uses browser-rendered layout data to preserve positions, images, text, controls, and device-adaptation intentions.
onejs-setup-and-overview
Use this skill whenever the user wants to build or set up user interface in a Unity project using OneJS, React, TypeScript, or JSX, e.g. 'add a main menu to my game', 'build a settings screen', 'make a HUD', 'set up OneJS', 'my OneJS panel is blank', 'the UI is not hot reloading'. Covers confirming OneJS is installed…
exploring-autocapture-events
Guides exploration of $autocapture events captured by posthog-js to understand user interactions, find CSS selectors (especially data-attr attributes), evaluate selector uniqueness, query matching clicks ad-hoc, and create actions. Use when the user asks about autocapture data, wants to find what users are clicking…
building-html-canvases
Author a PostHog canvas with semantic HTML, CSS, and direct browser APIs — documents, articles, generative graphics, 2D canvas and WebGL experiences, and focused experiments where React components add no useful structure. Use after building-canvases has routed a canvas request to a plain-HTML/browser-API…
quill-code
Edit the @posthog/quill design system locally and consume the change in products/desktop before it is published to npm. Use when changing quill components/primitives/tokens, when a quill change must be tested inside the Code app, or when the user mentions quill, the design system, the .local-quill tarball, or the…