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 Cooperzheng/ue-dev-playbook --skill module-finishgit clone --depth 1 https://github.com/Cooperzheng/ue-dev-playbookWrote 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/cooperzheng/ue-dev-playbook/module-finish)<a href="https://agentmods.dev/skills/cooperzheng/ue-dev-playbook/module-finish"><img src="https://agentmods.dev/badge/skills/cooperzheng/ue-dev-playbook/module-finish/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/cooperzheng/ue-dev-playbook/module-finish"><img src="https://agentmods.dev/badge/skills/cooperzheng/ue-dev-playbook/module-finish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00129 | $0.02701 |
| Opus 5 | $0.00064 | $0.01350 |
| Sonnet 5 | $0.00026 | $0.00540 |
| Haiku 4.5 | $0.00013 | $0.00270 |
Grade A, and why
module-finish 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 — 266 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Module Finish — 生成模块配置手册
当一个模块完成阶段性开发后,执行本 Skill 为其生成 handbook.md。
handbook 的核心价值:策划或新成员打开这个文件,5 分钟内就能知道这个系统实现了什么、每个功能怎么用、有哪些坑。
与现有文档的定位区别
| 文档 | 面向 | 侧重 | handbook 是否重复 |
|---|---|---|---|
spec.md |
AI 技术速查 | 接口速查、架构概览、数据格式、JS↔UE 协议 | 不重复 |
design.md |
人类深度阅读 | 实现原理、数据流 | 不重复 |
changelog.md |
历史归档 | 改动记录、踩坑修复(时序) | 提取踩坑到"常见问题" |
handbook.md |
策划 / 新成员 / AI 快速上手 | 功能清单 + 配置使用说明 + 常见问题 | — |
核心原则:先说"实现了什么",再说"怎么配置"。
- 一、功能总览:列出所有已实现/未实现功能,用 ✅/⚠️/⬜ 标注状态
- 二、功能配置:每个功能独立小节,说明"是什么"→"怎么用"→"可以改什么"→"有什么坑"
- 三、运行全链路:关键流程的步骤追踪(含 Mermaid)
- 四、常见问题:从 changelog 踩坑提炼,用问题现象描述
不写的内容(spec 负责): 接口速查表、架构概览、代码结构索引、蓝图资产清单、JS↔UE 协议
执行步骤
第一步:确定模块名
从用户话语中提取模块名,对应项目的模块路径映射找到路径。
若无法确定,用 AskQuestion 工具请用户选择。
第二步:Discovery subagent(只读,精细扫描)
用 Task 工具启动 explore subagent:
subagent_type: explore
readonly: true
model: fast
Prompt 模板(将 <MODULE>、<SRC_PATH>、<CONTENT_PATH> 替换为实际值):
你是 <MODULE> 模块的精细扫描员,目标是提取出所有配置相关的精确信息供后续生成文档使用。
## 任务 1:扫描所有 .h 文件
扫描 `<SRC_PATH>` 下所有 .h 文件,对每个 UPROPERTY 属性提取以下所有信息:
格式要求(每个属性一行):
类名.属性名 | 类型 | UPROPERTY说明符 | meta值 | 头文件行内默认值 | 含义(来自注释)
特别关注以下信息(必须提取,不能省略):
- `meta=(ClampMin="X", ClampMax="Y")` — 值的硬限制范围
- `meta=(UIMin="X", UIMax="Y")` — 编辑器 UI 显示范围
- `= X` 或 `{X}` 的内联初始化默认值
- `UPROPERTY` 说明符中的 `EditAnywhere` / `EditDefaultsOnly` / `EditInstanceOnly`
- 属性上方或右侧的注释(`//` 或 `/* */`)作为"含义"
- 枚举类型属性:必须同时提取该枚举的全部可选值和各值的注释
对 .cpp 构造函数中的赋值也要提取(如 `MyProp = 100.f`),作为默认值补充。
同时提取:
- 所有 `IConsoleVariable` CVar 声明及默认值
- 所有 `UFUNCTION(Exec)` 函数(控制台可调用命令)
- 所有 `static constexpr` 常量
## 任务 2:扫描 JSON 配置文件
扫描 `<CONTENT_PATH>` 下所有 *.json 文件。
对每个文件:
- 读取完整内容
- 列出每个顶层字段名、类型、是否在数组中出现过
- 如有嵌套对象,也要列出嵌套字段
## 任务 3:DataTable 路径搜索
用 Glob 搜索 `Content/**/DT_*.uasset` 找出与 <MODULE> 相关的 DataTable。
同时搜索 `Source/**/*.h` 中以 `USTRUCT` 且文件名含 <MODULE> 或与配置相关的结构体。
对每个找到的 USTRUCT 行结构,提取所有字段名、类型、注释。
## 任务 4:文档状态检查
检查以下文件是否存在并读取摘要:
- `AI_Docs/<MODULE>/spec.md`(读取前 30 行,了解 spec 已覆盖哪些内容)
- `AI_Docs/<MODULE>/design.md`
- `AI_Docs/<MODULE>/changelog.md`(读取最近 80 行,提取踩坑记录)
## 输出格式
### 1. UPROPERTY 精细清单
格式:类名.属性名 | C++类型 | 编辑位置 | 默认值 | 范围 | 含义
### 2. 枚举值详细表
格式:枚举名 → 值名 : 数值 | 含义
### 3. JSON 字段清单
(若无 JSON 文件则写"无")
### 4. DataTable 行结构体字段
格式:结构体名(对应DT路径) → 字段名 | 类型 | 含义
### 5. 文档文件状态 + spec 已覆盖内容摘要
spec.md: 存在/缺失(已覆盖:...) | design.md: 存在/缺失 | changelog.md: 存在/缺失(踩坑记录摘要:...)
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 · 266 lines · 129 tokens per session scan A 171cbee8ed75
module-finish is a skill published in the GitHub repository Cooperzheng/ue-dev-playbook (5 stars, last pushed 5mo ago), licensed MIT. It adds 129 tokens to every session and 2,701 once invoked, about $0.0006 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-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
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…
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…
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…
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…
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…