Borrowing it
Nothing to install: this file belongs to eiriksgata/wc3-map-ts-template. 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/eiriksgata/wc3-map-ts-template/main/.cursor/skills/wc3-w3x2lni-workflow/SKILL.mdgit clone --depth 1 https://github.com/eiriksgata/wc3-map-ts-templateWrote 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/eiriksgata/wc3-map-ts-template/wc3-w3x2lni-workflow)<a href="https://agentmods.dev/skills/eiriksgata/wc3-map-ts-template/wc3-w3x2lni-workflow"><img src="https://agentmods.dev/badge/skills/eiriksgata/wc3-map-ts-template/wc3-w3x2lni-workflow/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/eiriksgata/wc3-map-ts-template/wc3-w3x2lni-workflow"><img src="https://agentmods.dev/badge/skills/eiriksgata/wc3-map-ts-template/wc3-w3x2lni-workflow.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.00162 | $0.07771 |
| Opus 5 | $0.00081 | $0.03886 |
| Sonnet 5 | $0.00032 | $0.01554 |
| Haiku 4.5 | $0.00016 | $0.00777 |
Grade A, and why
wc3-w3x2lni-workflow 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 8d 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 — 272 lines — stays where its author put it; the contents beside it link to each section on GitHub.
w3x2lni (w2l) 工作流与数据放置约定
本技能 与 wc3-map-ts-template(构建链总览)及 wc3-map-ts-architecture(src/ 代码结构)并列:
何时看本技能 = 改/加 物编、地形(KKWE)、资源(mdl/blp/tga/fdf/toc)、imp.ini 引用、w2l 打包问题,或要向 AI 解释「应该把数据/资源放在哪里」。
KKWE 直接编辑 LNI:禁止解包回写
maps/ 是 LNI 工程(根上有空的 .w3x 标记)。KKWE 内置 w3x2lni 插件,原生打开并保存这个目录:
| 在 KKWE 里改什么 | 保存后写到哪里 | 还要不要 w2l 解包 |
|---|---|---|
| 地形 / 装饰物 / 单位摆放 | maps/map/(war3map.w3e / .doo / .wpm …) |
不要 |
| 物体编辑器 / 地图信息 | maps/table/*.ini |
不要 |
对用户说话时的硬规则:
- 打开
maps/改图,不要打开dist/map.w3x。 - KKWE 保存后源码已更新。禁止再说「保存后再用 w2l 解包
.w3x」「把dist/map.w3x解回maps/」。 - 本仓库日常
w2l只打包:w2l.exe obj ./maps ./dist/map.w3x。进游戏测图才需要打包。 w2l lni解包只用于第一次把外部独立.w3x导入成 LNI 工程,不是地形编辑的后续步骤。
一句话心智模型
maps/是 w2l 的 LNI 工程根(目录化源码,不是「解包出来的临时目录」)。KKWE 读写的就是它。w2l.exe obj ./maps ./dist/map.w3x把整个maps/打包为标准map.w3x(MPQ)。输入是 LNI,输出是 obj/MPQ。maps/table/*.ini是 w3x2lni 特有的 Lni 文本物编,打包时会被 w2l 当作补丁与_parent所继承的 Slk 默认数据合并,再以war3map.w3u/w3a/w3t/w3b/w3d/w3h/w3q+war3mapMisc.txt/war3mapSkin.txt等形式写入map.w3x。 KKWE 保存物编时也会直接改这些 ini。maps/resource/**/*是要随地图进入 MPQ 的 美术/UI 资源(模型、贴图、FDF、TOC 等);必须 在maps/table/imp.ini里登记 MPQ 内路径才会进包并被 WAR3 寻址。- ⚠ 路径映射有陷阱:w2l 按扩展名分类,
blp/tga/mdx/mdl/dds/tif打包时会被 剥掉resource\前缀(引擎路径不带 resource),而fdf/toc/ttf/slk等 保留resource\前缀。详见下文「关键规则」章节。 resource/object-data/*.ts是 TS 侧物编数据源(UnitTable/AbilityTable/ItemTable/BuffTable/MiscTable/TxtTable…)。约定:构建期scripts/prepack把它们序列化为maps/table/*.ini,然后 再跑 w2l。运行时禁止修改。
顶层目录总览(以本仓库为准)
| 路径 | 角色 | 写入时机 | 进不进 MPQ |
|---|---|---|---|
maps/ |
w2l LNI 工程根 | KKWE 保存 + 手写 + 构建时注入(bootstrap.lua / war3map.j) | 打包时整体进 map.w3x |
maps/map/ |
地形/触发/war3map.j/bootstrap.lua |
KKWE 保存或构建脚本写 | ✅(MPQ 根) |
maps/table/*.ini |
物编(Lni 文本,w3x2lni 专用) | KKWE 保存会自动更新;也可由 resource/object-data/*.ts → prepack 生成或手写 |
转换为 w3u/w3a/... 后进 MPQ |
maps/resource/** |
随地图进 MPQ 的资源(.mdl/.mdx/.blp/.tga/.fdf/.toc …) | 人工放置 | ✅(需登记到 imp.ini) |
maps/trigger/ |
触发相关工程文件 | WE / w2l | 视 w2l 规则 |
maps/w3x2lni/ |
地图内插件目录(可选) | 手写 | w2l 会应用其中 plugin/* |
maps/.w3x |
Lni 模式标记文件(存在即告诉 w2l 这是 lni 工程) | 由 w2l 首次生成 | ❌ |
resource/object-data/* |
TS 侧物编数据源(类型安全) | 手写 TS | ❌ 仅参与预打包 |
resource/model/** |
本地素材仓库(可镜像给 maps/resource/) |
手写 | ❌(需拷贝进 maps/resource/) |
dev_lib/w3x2lni/ |
w2l 运行时(w2l.exe、template/、data/) |
依赖 | — |
dev_lib/w3x2lni-src/ |
w2l 源码(Lua),用来理解规则 | 依赖 | — |
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.
- 8d ago First seen · 272 lines · 162 tokens per session scan A bb1a241c8a16
wc3-w3x2lni-workflow is a skill published in the GitHub repository eiriksgata/wc3-map-ts-template (25 stars, last pushed 12d ago), licensed MIT. It adds 162 tokens to every session and 7,771 once invoked, about $0.0008 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-09-03.
Other skills, from other repositories
hearth-art
Give a Hearth game real art and sound — importing and slicing spritesheets, animations, procedural sprites and sounds, autonomous CC0 asset sourcing (Kenney, itch.io, OpenGameArt, Freesound, Google Fonts) with licensing rules, and pixel-art discipline (never stretch; read the art before using it). Use when the game…
hearth-build
Structure a Hearth game's world — scenes, entities, components, tilemaps and autotiling (surfaces must connect), collider/sprite alignment, prefabs, animation state machines, and input bindings. Use when creating or arranging what exists in a Hearth game (levels, objects, hierarchies); behavior scripts are…
hearth-feel
Make a Hearth game feel good, not just run — the juice stack (hit-stop, screen shake, flash, particle bursts, layered sound), tween easing, camera effects, anticipation/recovery animation idioms, game-UX conventions (menus, pause, onboarding, difficulty, save etiquette), effect-asserting playtests, and the quality bar…
hearth
Operate the Hearth engine as a coding agent — the session loop (recall → snapshot → change → validate → playtest → screenshot → remember), project memory, permission modes, verification, review/undo, and export. Load FIRST whenever a project has a hearth.json or the task mentions Hearth. Routes to the domain skills…
hearth-code
Write behavior in Hearth — Lua/JS scripts, the ctx API (input, timers, tweens, events, camera, audio, save), script modules and require, the dot-call and userdata pitfalls, deterministic RNG, and the check-script/edit-script iteration loop. Use when making things happen in a Hearth game (movement, AI, pickups, rules)…
hearth-design
Shape a complete Hearth game, not just working mechanics — scoping to session length (the verbs × levels × enemies budget), the teach → develop → escalate → climax → end arc, real endings (a win state, not just game-over), one-element-at-a-time difficulty ramps, scenes-as-levels pacing with gated progress and…