Web Clone
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
Integrates Vue UI with Three.js while maintaining strict separation.
$ npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hexianWeb/Third-Person-MC vtj-ui-integration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hexianWeb/Third-Person-MC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agent/skills/vtj-ui-integration .claude/skills/vtj-ui-integration && rm -rf skills-srcUse ~/.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/
Install the "vtj-ui-integration" agent skill from https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integration into .claude/skills/vtj-ui-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vtj-ui-integration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integrationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hexianWeb/Third-Person-MC vtj-ui-integration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexianWeb/Third-Person-MC.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agent/skills/vtj-ui-integration .agents/skills/vtj-ui-integration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vtj-ui-integration" agent skill from https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integration into .agents/skills/vtj-ui-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vtj-ui-integration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hexianWeb/Third-Person-MC vtj-ui-integration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexianWeb/Third-Person-MC.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agent/skills/vtj-ui-integration .cursor/skills/vtj-ui-integration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vtj-ui-integration" agent skill from https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integration into .cursor/skills/vtj-ui-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vtj-ui-integration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hexianWeb/Third-Person-MC.git --path .agent/skills/vtj-ui-integration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hexianWeb/Third-Person-MC vtj-ui-integration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexianWeb/Third-Person-MC.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agent/skills/vtj-ui-integration .gemini/skills/vtj-ui-integration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vtj-ui-integration" agent skill from https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integration into .gemini/skills/vtj-ui-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vtj-ui-integration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hexianWeb/Third-Person-MC vtj-ui-integrationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hexianWeb/Third-Person-MC.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agent/skills/vtj-ui-integration .github/skills/vtj-ui-integration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vtj-ui-integration" agent skill from https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integration into .github/skills/vtj-ui-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vtj-ui-integration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hexianWeb/Third-Person-MC vtj-ui-integration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexianWeb/Third-Person-MC.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agent/skills/vtj-ui-integration .opencode/skills/vtj-ui-integration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vtj-ui-integration" agent skill from https://github.com/hexianWeb/Third-Person-MC/tree/main/.agent/skills/vtj-ui-integration into .opencode/skills/vtj-ui-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vtj-ui-integration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vtj-ui-integrationIntegrates Vue UI with Three.js while maintaining strict separation.
Vtj UI Integration is an agent skill from hexianWeb/Third-Person-MC. Integrates Vue UI with Three.js while maintaining strict separation. Use when building HUDs, menus, or handling UI-to-scene communication via events.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development, covering 3D graphics and WebGL. It works with Three.js and Vue.js. The repository describes itself as: Three.js web version Minecraft in browser. The licence is MIT.
Read from SKILL.md and the folder at commit 490203c. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript and vue).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vtj UI Integration loads about 2.2k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 209 words of instructions outside code blocks.
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.
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.
The full file from hexianWeb/Third-Person-MC at commit 490203c, republished under its MIT licence (© hexianWeb). 209 words, ~2,229 tokens.
.claude/skills/vtj-ui-integration/SKILL.md (or your agent's skills folder).本项目采用 严格的层分离架构:
两层之间 禁止直接操作,所有通信通过 Pinia + mitt 完成。
┌─────────────────────────────────────────────────────────────┐
│ Vue UI Layer │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Components │◄────────►│ Pinia Stores │ │
│ │ (src/vue/) │ │ (src/pinia/) │ │
│ └─────────────────┘ └────────┬────────┘ │
└────────────────────────────────────────┼────────────────────┘
│ emitter.emit()
▼
┌─────────────────────────────────────────────────────────────┐
│ mitt Event Bus │
│ (src/js/utils/event-bus.js) │
└─────────────────────────────────────────────────────────────┘
│ emitter.on()
▼
┌─────────────────────────────────────────────────────────────┐
│ Three.js Layer │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Components │◄────────►│ Experience │ │
│ │ (src/js/) │ │ (singleton) │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘| 层 | 职责 | 示例 |
|---|---|---|
| Vue | 界面渲染、用户输入、菜单导航 | HUD、暂停菜单、设置面板 |
| Three.js | 3D 渲染、物理、动画、游戏逻辑 | 玩家移动、地形生成、相机控制 |
src/vue/
├── components/
│ ├── hud/ # 游戏内 HUD(血条、快捷栏等)
│ │ ├── HealthBar.vue
│ │ ├── Hotbar.vue
│ │ └── GameHud.vue
│ ├── menu/ # 菜单系统
│ │ ├── UiRoot.vue # 菜单根组件
│ │ ├── MainMenu.vue
│ │ ├── PauseMenu.vue
│ │ └── SettingsMenu.vue
│ └── ui/ # 共享 UI 元素src/js/
├── experience.js # 单例入口
├── world/ # 场景元素
├── camera/ # 相机系统
├── interaction/ # 交互系统
└── utils/
└── event-bus.js # mitt 实例场景:用户在 UI 操作,需要影响 3D 场景
// 1. Pinia Store 定义 action
// src/pinia/uiStore.js
function toPlaying() {
screen.value = 'playing'
isPaused.value = false
emitter.emit('ui:pause-changed', false) // 通知 Three.js
emitter.emit('game:request_pointer_lock')
}
// 2. Three.js 组件监听
// src/js/world/player.js
constructor() {
this._handlePause = this._handlePause.bind(this)
emitter.on('ui:pause-changed', this._handlePause)
}
_handlePause(paused) {
this.isPaused = paused
}
destroy() {
emitter.off('ui:pause-changed', this._handlePause)
}场景:3D 场景状态变化,需要更新 UI
// 1. Three.js 中发送事件
// src/js/world/player.js
takeDamage(amount) {
this.health -= amount
emitter.emit('game:player-health-changed', {
health: this.health,
maxHealth: this.maxHealth
})
}
// 2. Vue 组件监听
// src/vue/components/hud/HealthBar.vue
<script setup>
import emitter from '@three/utils/event-bus.js'
import { onMounted, onUnmounted, ref } from 'vue'
const health = ref(100)
const maxHealth = ref(100)
function handleHealthChange({ health: h, maxHealth: max }) {
health.value = h
maxHealth.value = max
}
onMounted(() => {
emitter.on('game:player-health-changed', handleHealthChange)
})
onUnmounted(() => {
emitter.off('game:player-health-changed', handleHealthChange)
})
</script>场景:用户修改设置,Three.js 需要响应
// 1. Pinia Store
// src/pinia/settingsStore.js
function setShadowQuality(quality) {
shadowQuality.value = quality
emitter.emit('shadow:quality-changed', quality)
saveSettings()
}
// 2. Three.js Renderer 响应
// src/js/renderer.js
emitter.on('shadow:quality-changed', (quality) => {
this.updateShadowMapSize(quality)
})<script setup>
import emitter from '@three/utils/event-bus.js'
import { onMounted, onUnmounted, ref } from 'vue'
// 状态
const value = ref(0)
// 事件处理函数(必须保存引用以便清理)
function handleEvent(data) {
value.value = data.value
}
// 生命周期
onMounted(() => {
emitter.on('game:some-event', handleEvent)
})
onUnmounted(() => {
emitter.off('game:some-event', handleEvent) // 必须清理!
})
// 发送事件到 Three.js
function triggerAction() {
emitter.emit('ui:some-action', { param: 'value' })
}
</script><script setup>
import { useUiStore } from '@pinia/uiStore.js'
const ui = useUiStore()
function handlePlay() {
ui.toPlaying() // Pinia action 内部会 emit 事件
}
function handleSettings() {
ui.toSettings('mainMenu')
}
</script>
<template>
<div class="menu">
<button @click="handlePlay">Play</button>
<button @click="handleSettings">Settings</button>
</div>
</template>| Store | 文件 | 职责 |
|---|---|---|
useUiStore | uiStore.js | 屏幕状态、菜单导航、世界管理 |
useSettingsStore | settingsStore.js | 游戏设置、持久化、Three.js 通知 |
useHudStore | hudStore.js | HUD 状态(血量、快捷栏等) |
useSkinStore | skinStore.js | 皮肤选择状态 |
详见 vtj-state-management skill,此处简要回顾:
| 前缀 | 来源 | 示例 |
|---|---|---|
ui: | Vue UI | ui:pause-changed |
game: | 游戏逻辑 | game:create_world |
settings: | 设置变更 | settings:environment-changed |
core: | 系统级 | core:ready, core:resize |
Vue 组件中使用标准别名:
// ✅ GOOD: 使用别名
import emitter from '@three/utils/event-bus.js'
import { useUiStore } from '@pinia/uiStore.js'
// ❌ BAD: 相对路径
import emitter from '../../../js/utils/event-bus.js'| 别名 | 路径 |
|---|---|
@ | src/ |
@ui | src/vue/ |
@ui-components | src/vue/components/ |
@pinia | src/pinia/ |
@three | src/js/ |
// BAD: 直接操作 Three.js 实例
import Experience from '@three/experience.js'
function handleTeleport() {
const exp = new Experience()
exp.world.player.setPosition(0, 0, 0) // ❌ 违反层分离
}
// GOOD: 通过事件通信
function handleTeleport() {
emitter.emit('game:player-teleport', { x: 0, y: 0, z: 0 })
}<script setup>
// BAD: 没有 onUnmounted 清理
onMounted(() => {
emitter.on('game:event', handleEvent) // 内存泄漏!
})
// GOOD: 完整生命周期
onMounted(() => {
emitter.on('game:event', handleEvent)
})
onUnmounted(() => {
emitter.off('game:event', handleEvent)
})
</script>// BAD: Three.js 直接写 Pinia
import { useUiStore } from '@pinia/uiStore.js'
function onPlayerDeath() {
const ui = useUiStore()
ui.screen = 'gameOver' // ❌ 跨层直接操作
}
// GOOD: 通过事件让 Vue 层处理
function onPlayerDeath() {
emitter.emit('game:player-died')
}
// Vue 层响应
emitter.on('game:player-died', () => {
ui.toGameOver()
})// BAD: 匿名函数
emitter.on('game:event', (data) => this.handle(data)) // 无法 off
// GOOD: 保存引用
this._boundHandler = this.handle.bind(this)
emitter.on('game:event', this._boundHandler)
// ...
emitter.off('game:event', this._boundHandler)// BAD: 导入并实例化 Three.js 组件
import Player from '@three/world/player.js'
const player = new Player() // ❌ Vue 不应该创建 3D 组件
// GOOD: 只通过事件/状态交互
emitter.emit('game:spawn-player', { x: 0, y: 0, z: 0 })用于 UI 预览的独立 Three.js 场景(如皮肤预览)可以在 Vue 组件中创建:
// src/js/components/skin-preview-scene.js
// 这是独立场景,不使用 Experience 单例
class SkinPreviewScene {
constructor(canvas) {
this.scene = new THREE.Scene()
this.camera = new THREE.PerspectiveCamera(...)
this.renderer = new THREE.WebGLRenderer({ canvas })
}
}<!-- src/vue/components/menu/SkinSelector.vue -->
<script setup>
import SkinPreviewScene from '@three/components/skin-preview-scene.js'
import { onMounted, onUnmounted, ref } from 'vue'
const canvasRef = ref(null)
let preview = null
onMounted(() => {
preview = new SkinPreviewScene(canvasRef.value)
})
onUnmounted(() => {
preview?.destroy()
})
</script>这是唯一允许 Vue 直接操作 Three.js 的情况,因为是隔离的预览场景。
| 需求 | 解决方案 |
|---|---|
| UI 触发 3D 动作 | Pinia action → emitter.emit() |
| 3D 更新 UI | emitter.emit() → Vue emitter.on() |
| 共享状态 | Pinia Store |
| 即时通知 | mitt 事件 |
| Vue 读取 3D 状态 | 通过 Pinia(3D 写入 Pinia 或 emit 事件) |
| 禁止 | 原因 |
|---|---|
| Vue 直接操作 Experience | 破坏层分离 |
| Vue 导入 3D 组件类 | 职责混淆 |
| Three.js 直接写 Pinia | 违反单向数据流 |
| 匿名事件监听器 | 无法清理,内存泄漏 |
© hexianWeb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agent/skills/vtj-ui-integration of hexianWeb/Third-Person-MC.
Open the folder on GitHubat commit 490203c
Vtj UI Integration 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vtj UI Integration this skillhexianWeb/Third-Person-MC | 194 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Web CloneJane-xiaoer/claude-skill-web-clone | 1k | 2 repos | ~2.7k | Automated safety check: Pass | MIT | |
| New ExperimentTresjs/tres | 3.8k | — | ~782 | Automated safety check: Pass | MIT | |
| Polycsslayoutit/polycss | 759 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Tresjs Core Skilldskilld-dev/vue-ecosystem-skills | 181 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Lint Commit PRTresjs/tres | 3.8k | — | ~1.1k | Automated safety check: Pass | MIT |
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
Tresjs/tres
Create a new experiment in TresJS Lab with all necessary files
layoutit/polycss
Build PolyCSS scenes that render 3D meshes, primitive shapes, or custom polygons as DOM/CSS polygon elements.
skilld-dev/vue-ecosystem-skills
Declarative Three.js using Vue components. An agent skill from skilld-dev/vue-ecosystem-skills.
Tresjs/tres
Lint local changes, auto-fix, conventional commit, and optionally create PR
secondsky/claude-skills
120+ Vue/Nuxt animated components with TailwindCSS v4, motion-v, GSAP, Three.js.
hexianWeb/Third-Person-MC
Configures Tweakpane debug panels for 3D components. An agent skill from hexianWeb/Third-Person-MC.
hexianWeb/Third-Person-MC
Configures third-person camera systems with collision avoidance.
hexianWeb/Third-Person-MC
Creates 3D components using the Experience singleton pattern.
hexianWeb/Third-Person-MC
Handles mouse, keyboard, and touch input via the IMouse and InputManager systems.
hexianWeb/Third-Person-MC
Optimizes Three.js rendering performance. An agent skill from hexianWeb/Third-Person-MC.
hexianWeb/Third-Person-MC
Implements ray picking and collision detection. An agent skill from hexianWeb/Third-Person-MC.
Categories
Integrates Vue UI with Three.js while maintaining strict separation. Vtj UI Integration is an agent skill from hexianWeb/Third-Person-MC.js while maintaining strict separation.
Vtj UI Integration fits situations like: handling UI-to-scene communication via events; tasks that involve 3D graphics and WebGL.
Run `npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a claude-code`. Or copy the skill folder (.agent/skills/vtj-ui-integration in hexianWeb/Third-Person-MC) into .claude/skills/vtj-ui-integration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a codex`. Or copy the skill folder (.agent/skills/vtj-ui-integration in hexianWeb/Third-Person-MC) into .agents/skills/vtj-ui-integration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hexianWeb/Third-Person-MC --skill vtj-ui-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vtj-ui-integration, .gemini/skills/vtj-ui-integration, .github/skills/vtj-ui-integration and .opencode/skills/vtj-ui-integration in your project.
SKILL.md names no scripts, command-line tools or credentials: Vtj UI Integration is instructions for the agent only.
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.
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.
Vtj UI Integration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vtj UI Integration: Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), New Experiment (Tresjs/tres, 3.8k stars), Polycss (layoutit/polycss, 759 stars) and Tresjs Core Skilld (skilld-dev/vue-ecosystem-skills, 181 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hexianWeb (a GitHub user) maintains it in hexianWeb/Third-Person-MC, which has 194 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on July 27, 2026.
Source: hexianWeb/Third-Person-MC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.