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.
npx skills add zhuanggenhua/BoardGame --skill game-ai-strategy-designgit clone --depth 1 https://github.com/zhuanggenhua/BoardGameWrote 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/zhuanggenhua/boardgame/game-ai-strategy-design)<a href="https://agentmods.dev/skills/zhuanggenhua/boardgame/game-ai-strategy-design"><img src="https://agentmods.dev/badge/skills/zhuanggenhua/boardgame/game-ai-strategy-design/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/zhuanggenhua/boardgame/game-ai-strategy-design"><img src="https://agentmods.dev/badge/skills/zhuanggenhua/boardgame/game-ai-strategy-design.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 90 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00047 | $0.01831 |
| Opus 5 | $0.00023 | $0.00915 |
| Sonnet 5 | $0.00009 | $0.00366 |
| Haiku 4.5 | $0.00005 | $0.00183 |
Grade A, and why
game-ai-strategy-design 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 12d 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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Game AI Strategy Design
目标
把“能动的 AI”升级成“像会玩的人”的 AI。默认先理解游戏目标、局势评价和玩家反馈,再把策略拆成可解释、可测试、可逐步调参的模型;不要靠继续堆单点 if 解决“AI 蠢”的反馈。
先锁定前提
动代码前必须说清四件事:
- 问题对象:具体是哪款游戏、哪个阶段、哪类决策,例如投骰追击、出牌、选技能、目标选择。
- 真相来源:玩家反馈、现有测试、源码、攻略/规则资料、成熟游戏 AI 对比,哪些已经命中症状。
- 目标入口:本地 AI、远程 AI、移动端表现、线上 OTA 版本还是测试环境。
- 验收口径:用哪些回归场景证明更聪明,例如保留高价值结果、继续追高收益组合、不为低收益动作浪费资源。
缺任一项时,先补证据或向用户问最小问题,不要直接改。
设计流程
1. 先复盘真实反馈
- 把玩家说法翻译成决策失败模式:短视、拆好牌、不会追大招、不会留资源、不会阻止对手、不会看胜负点。
- 找到对应动作入口:legal actions、评分器、投影函数、局势估值、阶段推进或卡牌交互。
- 写出反例场景:当前骰面/手牌/资源/回合数/可选动作,以及好玩家通常会做什么。
2. 再读成熟参照
- 优先对比仓库里已成熟的同类 AI,例如局势评分、胜负点 swing、阻止对手、角色 / 派系画像、局部模拟。
- 只迁移思想,不硬搬数值。先问:这个游戏的“赢分”是什么,当前行动如何改变胜率。
- 输出差距结论:当前 AI 是阶段专家、全局局势评估器、资源管理器,还是只是一组动作偏好。
3. 拆成三层模型
- 打法画像:角色、派系、卡组或玩法包偏好。说明它偏爆发、控场、资源、抢节奏还是防守。
- 局势/期望模型:用可计算指标表示好坏,例如伤害期望、得分差、成功率、缺口、风险、剩余机会、资源消耗。
- 行动执行模型:把评分落到真实合法动作,例如锁骰、重投、打牌、选技能、弃牌、结束阶段。
任何新策略都应能落到这三层之一。落不进去的 if,通常需要重新设计。
行动收益必须来自结算结果
- “能打出 / 合法动作 / 有策略标签 / 目标基地压力高”只能说明候选可评估,不能单独算收益。
- 对会消耗资源的行动(例如行动牌、手牌、次数、能量),评分前必须扣住执行后的真实收益:状态评分变化、规则效果事件、打开可收口的己方后续选择,或明确的对手阻断收益。
- 如果动作预演后只有“没有有效目标”反馈、没有状态收益、没有己方后续选择,默认强降权或让结束 / pass / skip 胜出;不得为每张牌继续堆单卡 if 来掩盖评分模型缺口。
- legal actions 只保证“真人和 AI 都能执行同一批合法命令”;策略层必须再判断“执行后值不值得”。不能用合法性校验替代收益预测,也不能用节奏基础分覆盖预演结果。
- 回归测试至少覆盖一个“命令合法但结算零收益”的反例,证明 AI 不是靠某张牌的特例过滤才变聪明。
共享 outcome 合同
- 新增或重构“打出 / 发动 / 消耗资源”的 AI 策略时,优先接
src/engine/ai/actionOutcome.ts的共享合同:游戏层提供真实执行预演 adapter,共享 scorer 消费utilityDelta / hasMeaningfulEffect / hasOwnedFollowUp / feedbackKeys等结果分类。 GameAiRuntime.projectActionOutcome是游戏对共享 AI 框架暴露执行结果的标准入口;新策略不应把“零收益 / 无目标 / 空耗资源”的判断散落在多个 scorer、lookahead、phase-hold 或单卡 if 中。- 共享层只定义结果分类和扣分门槛,不写游戏收益公式。VP、伤害、位置、牌差、资源、骰面等收益定义仍由各游戏 adapter 翻译成 outcome。
- 已有真实结算预演 adapter 的游戏,新增可消耗资源动作应优先复用该 adapter;只有共享 outcome 合同无法表达的新收益形态,才扩展对应游戏 adapter,不为单个对象绕开框架补特例。
4. 给每个策略写反例测试
至少覆盖:
- 玩家反馈中的原始坏例子。
- 高收益但需要忍住低阶收益的例子。
- 没有资源/机会不足时不硬追的止损例子。
- 与旧合同相邻的稳定性测试,避免修聪明后又卡死或非法动作。
测试名用中文描述玩家能听懂的行为,不只写内部函数名。
5. 重构优先级
优先做:
- 把上下文、候选生成、评分、动作优先级拆开。
- 把“当前已成技能”和“更高目标追击”分开评价。
- 把资源牌/改骰牌/重掷机会作为概率加成或成本,而不是写死必追或不追。
- 保留可调权重的集中位置,方便后续按角色/难度调参。
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.
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.
- 12d ago First seen · 118 lines · 47 tokens per session scan A ac70f887b6ec
game-ai-strategy-design is a skill published in the GitHub repository zhuanggenhua/BoardGame (23 stars, last pushed yesterday), licensed MIT. It adds 47 tokens to every session and 1,831 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
gameobject-component-destroy
Destroy one or more Components from a target GameObject. Missing (null) components are skipped — they cannot be destroyed. Use 'gameobject-find' and 'gameobject-component-get' to identify the components first.
unity-version-split
Split a C# file into Unity 6.5+ and pre-Unity 6.5 variants. Use when a file needs different implementations for different Unity versions due to API changes (e.g., EntityId vs int, GetEntityId vs GetInstanceID).
godot-signals-groups
Build event-driven, decoupled Godot 4.7 gameplay with signals and node groups: declare and emit custom signals, connect with Callables (incl. bind/one-shot), and broadcast to many nodes via groups and callgroup. Use when wiring node communication in a Godot project, replacing tight references with signals…
motion
How an agent turns a character mesh into a usable animated FBX — and how to judge whether the result is shippable.
unity-addressables
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based).
threejs-exposure-color-grading
Build a measured exposure and grading path in Three.js. Use for a 64x36 encoded luminance meter, asynchronous readback, weighted log-average exposure, asymmetric adaptation, single tone-map ownership, and a generated 32-cube post-tone-map LUT.