【工程】harness 编排优化

main
马远征 2026-05-08 13:25:20 +08:00
parent e4ab8587d7
commit cb94ccc58e
44 changed files with 953 additions and 125 deletions

View File

@ -1,6 +1,6 @@
---
name: compile-gameplay-dll
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。触发关键词:编译 compile、GamePlay.dll、转换为Dll、build DLL、编译错误、Assembly Definition asmdef。
---
# Compile GamePlay DLL

View File

@ -1,12 +1,28 @@
---
name: knowledge-base
description: 项目知识库索引。当需要了解已有的功能说明、性能优化记录、开发日志时使用。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
description: 项目知识库索引。查阅功能说明、性能优化记录、开发日志时使用。触发关键词:武器熟练度 WeaponDegree、ShowAreaId 显示区域、攻击换弹 canAttackNoReloadFull、暂停技能释放、载具科技树、PerformanceManager 性能参数 性能优化、GC 分配 内存优化 Buff性能、密钥泄露 secret exposure、资源检查 FileChecker batch runner。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
---
# 项目知识库
提供对项目 AI 生成文档和开发记录的索引和查阅能力。
## 关键词 → 文档速查
当用户提到以下关键词时,自动定位到对应文档:
| 关键词 | 文档路径 |
|--------|----------|
| 武器熟练度, WeaponDegree | `AI_Gen_Doc/武器熟练度功能说明.md` |
| ShowAreaId, 显示区域 | `AI_Gen_Doc/ShowAreaId相关逻辑说明.md` |
| 攻击换弹, canAttackNoReloadFull, 不换弹 | `AI_Gen_Doc/canAttackNoReloadFull功能说明.md` |
| 暂停技能, 暂停释放, pause skill | `AI_Gen_Doc/暂停状态下技能释放流程说明.md` |
| 载具科技树, vehicle tech tree | `AI_Gen_Doc/载具科技树生成功能说明.md` |
| 性能参数, PerformanceManager, 动态性能 | `AI_Gen_Doc/PerformanceManager动态性能参数接入指南.md` |
| 性能优化, GC, 内存, Buff性能, 优化清单 | `AI_Gen_Doc/性能优化任务清单.md` + `AI_Gen_Doc/Finish/` |
| 密钥泄露, secret, exposure, 安全扫描 | `AI_Gen_Doc/package_secret_exposure_report.md` |
| 资源检查, FileChecker, batch runner | `AI_CODE/batch_resource_checker_*.md` |
## 知识库目录
### AI_Gen_Doc/ — 功能说明与任务清单

View File

@ -1,6 +1,6 @@
---
name: luban-config
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。触发关键词:配置表 config table、Luban 导出 export、Excel 数据、Root.xml、GenCode、LubanExportConfig、数值配置、新增配置表、配置校验。
---
# Luban 配置表操作

View File

@ -1,6 +1,6 @@
---
name: ui-prefab-dev
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。触发关键词UI界面 UI开发、Prefab 预制体、UIBaseController、AutoGen、UGUI、RectTransform、Image Button Text、ScrollRect 列表、extract_ui_prefab、ExtractedPrefabs、UI控制器。
---
# UI Prefab 开发

View File

@ -0,0 +1,76 @@
# sync-all.ps1 — 将 .ai/ 下的 skills、protocols、agents 同步到各平台目录
# 新增或更新后运行此脚本即可同步到全部平台
# 用法: cd ProjectNLD && powershell -ExecutionPolicy Bypass -File .ai/sync-all.ps1
$ErrorActionPreference = "Stop"
$PLATFORMS = @(".cursor", ".claude", ".github", ".kiro")
# ── 1. Sync skills ──────────────────────────────────────────────
$SKILLS_SRC = ".ai/skills"
Write-Host "=== Syncing skills from $SKILLS_SRC ==="
$skillCount = 0
Get-ChildItem "$SKILLS_SRC" -Directory | ForEach-Object {
$skill = $_.Name
$skillMd = Join-Path $_.FullName "SKILL.md"
if (-not (Test-Path $skillMd)) { return }
foreach ($platform in $PLATFORMS) {
$targetDir = Join-Path $platform "skills/$skill"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null
Copy-Item $skillMd (Join-Path $targetDir "SKILL.md") -Force
}
Write-Host " ✓ skill: $skill"
$skillCount++
}
# ── 2. Sync protocols ──────────────────────────────────────────
$PROTOCOLS_SRC = ".ai/protocols"
Write-Host ""
Write-Host "=== Syncing protocols from $PROTOCOLS_SRC ==="
$protoCount = 0
if (Test-Path $PROTOCOLS_SRC) {
Get-ChildItem "$PROTOCOLS_SRC" -Filter "*.md" | ForEach-Object {
$filename = $_.Name
foreach ($platform in $PLATFORMS) {
$targetDir = Join-Path $platform "protocols"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null
Copy-Item $_.FullName (Join-Path $targetDir $filename) -Force
}
Write-Host " ✓ protocol: $filename"
$protoCount++
}
}
# ── 3. Sync agents ─────────────────────────────────────────────
$AGENTS_SRC = ".ai/agents"
Write-Host ""
Write-Host "=== Syncing agents from $AGENTS_SRC ==="
$agentCount = 0
if (Test-Path $AGENTS_SRC) {
Get-ChildItem "$AGENTS_SRC" -Filter "*.md" | ForEach-Object {
$filename = $_.Name
foreach ($platform in $PLATFORMS) {
$targetDir = Join-Path $platform "agents"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null
Copy-Item $_.FullName (Join-Path $targetDir $filename) -Force
}
Write-Host " ✓ agent: $filename"
$agentCount++
}
}
# ── Summary ─────────────────────────────────────────────────────
Write-Host ""
Write-Host "Done. Synced to $($PLATFORMS.Count) platforms:"
Write-Host " Skills: $skillCount"
Write-Host " Protocols: $protoCount"
Write-Host " Agents: $agentCount"

80
ProjectNLD/.ai/sync-all.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/bash
# sync-all.sh — 将 .ai/ 下的 skills、protocols、agents 同步到各平台目录
# 新增或更新后运行此脚本即可同步到全部平台
# 用法: cd ProjectNLD && bash .ai/sync-all.sh
set -e
PLATFORMS=(".cursor" ".claude" ".github" ".kiro")
# ── 1. Sync skills ──────────────────────────────────────────────
SKILLS_SRC=".ai/skills"
echo "=== Syncing skills from $SKILLS_SRC ==="
skill_count=0
for skill_dir in "$SKILLS_SRC"/*/; do
[ -d "$skill_dir" ] || continue
skill=$(basename "$skill_dir")
skill_md="$skill_dir/SKILL.md"
[ -f "$skill_md" ] || continue
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/skills/$skill"
mkdir -p "$target_dir"
cp "$skill_md" "$target_dir/SKILL.md"
done
echo " ✓ skill: $skill"
((skill_count++))
done
# ── 2. Sync protocols ──────────────────────────────────────────
PROTOCOLS_SRC=".ai/protocols"
echo ""
echo "=== Syncing protocols from $PROTOCOLS_SRC ==="
proto_count=0
if [ -d "$PROTOCOLS_SRC" ]; then
for proto_file in "$PROTOCOLS_SRC"/*.md; do
[ -f "$proto_file" ] || continue
filename=$(basename "$proto_file")
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/protocols"
mkdir -p "$target_dir"
cp "$proto_file" "$target_dir/$filename"
done
echo " ✓ protocol: $filename"
((proto_count++))
done
fi
# ── 3. Sync agents ─────────────────────────────────────────────
AGENTS_SRC=".ai/agents"
echo ""
echo "=== Syncing agents from $AGENTS_SRC ==="
agent_count=0
if [ -d "$AGENTS_SRC" ]; then
for agent_file in "$AGENTS_SRC"/*.md; do
[ -f "$agent_file" ] || continue
filename=$(basename "$agent_file")
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/agents"
mkdir -p "$target_dir"
cp "$agent_file" "$target_dir/$filename"
done
echo " ✓ agent: $filename"
((agent_count++))
done
fi
# ── Summary ─────────────────────────────────────────────────────
echo ""
echo "Done. Synced to ${#PLATFORMS[@]} platforms:"
echo " Skills: $skill_count"
echo " Protocols: $proto_count"
echo " Agents: $agent_count"

View File

@ -1,28 +1,76 @@
# sync-skills.ps1 — 将 .ai/skills/ 复制到各平台技能目录(替代 symlink
# 新增或更新技能后运行此脚本即可
# 用法: cd ProjectNLD && powershell -ExecutionPolicy Bypass -File .ai/sync-skills.ps1
# sync-all.ps1 — 将 .ai/ 下的 skills、protocols、agents 同步到各平台目录
# 新增或更新后运行此脚本即可同步到全部平台
# 用法: cd ProjectNLD && powershell -ExecutionPolicy Bypass -File .ai/sync-all.ps1
$ErrorActionPreference = "Stop"
$SKILLS_SRC = ".ai/skills"
$TARGETS = @(".cursor/skills", ".claude/skills", ".github/skills", ".kiro/skills")
$PLATFORMS = @(".cursor", ".claude", ".github", ".kiro")
Write-Host "Syncing skills from $SKILLS_SRC ..."
$count = 0
# ── 1. Sync skills ──────────────────────────────────────────────
$SKILLS_SRC = ".ai/skills"
Write-Host "=== Syncing skills from $SKILLS_SRC ==="
$skillCount = 0
Get-ChildItem "$SKILLS_SRC" -Directory | ForEach-Object {
$skill = $_.Name
$skillMd = Join-Path $_.FullName "SKILL.md"
if (-not (Test-Path $skillMd)) { return }
foreach ($target in $TARGETS) {
$targetDir = Join-Path $target $skill
foreach ($platform in $PLATFORMS) {
$targetDir = Join-Path $platform "skills/$skill"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null
Copy-Item $skillMd (Join-Path $targetDir "SKILL.md") -Force
}
Write-Host "$skill"
$count++
Write-Host "skill: $skill"
$skillCount++
}
# ── 2. Sync protocols ──────────────────────────────────────────
$PROTOCOLS_SRC = ".ai/protocols"
Write-Host ""
Write-Host "Done. $count skill(s) synced to $($TARGETS.Count) platforms."
Write-Host "=== Syncing protocols from $PROTOCOLS_SRC ==="
$protoCount = 0
if (Test-Path $PROTOCOLS_SRC) {
Get-ChildItem "$PROTOCOLS_SRC" -Filter "*.md" | ForEach-Object {
$filename = $_.Name
foreach ($platform in $PLATFORMS) {
$targetDir = Join-Path $platform "protocols"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null
Copy-Item $_.FullName (Join-Path $targetDir $filename) -Force
}
Write-Host " ✓ protocol: $filename"
$protoCount++
}
}
# ── 3. Sync agents ─────────────────────────────────────────────
$AGENTS_SRC = ".ai/agents"
Write-Host ""
Write-Host "=== Syncing agents from $AGENTS_SRC ==="
$agentCount = 0
if (Test-Path $AGENTS_SRC) {
Get-ChildItem "$AGENTS_SRC" -Filter "*.md" | ForEach-Object {
$filename = $_.Name
foreach ($platform in $PLATFORMS) {
$targetDir = Join-Path $platform "agents"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null
Copy-Item $_.FullName (Join-Path $targetDir $filename) -Force
}
Write-Host " ✓ agent: $filename"
$agentCount++
}
}
# ── Summary ─────────────────────────────────────────────────────
Write-Host ""
Write-Host "Done. Synced to $($PLATFORMS.Count) platforms:"
Write-Host " Skills: $skillCount"
Write-Host " Protocols: $protoCount"
Write-Host " Agents: $agentCount"

74
ProjectNLD/.ai/sync-skills.sh Executable file → Normal file
View File

@ -1,30 +1,80 @@
#!/bin/bash
# sync-skills.sh — 将 .ai/skills/ 复制到各平台技能目录(替代 symlink
# 新增或更新技能后运行此脚本即可
# 用法: cd ProjectNLD && bash .ai/sync-skills.sh
# sync-all.sh — 将 .ai/ 下的 skills、protocols、agents 同步到各平台目录
# 新增或更新后运行此脚本即可同步到全部平台
# 用法: cd ProjectNLD && bash .ai/sync-all.sh
set -e
SKILLS_SRC=".ai/skills"
TARGETS=(".cursor/skills" ".claude/skills" ".github/skills" ".kiro/skills")
PLATFORMS=(".cursor" ".claude" ".github" ".kiro")
echo "Syncing skills from $SKILLS_SRC ..."
count=0
# ── 1. Sync skills ──────────────────────────────────────────────
SKILLS_SRC=".ai/skills"
echo "=== Syncing skills from $SKILLS_SRC ==="
skill_count=0
for skill_dir in "$SKILLS_SRC"/*/; do
[ -d "$skill_dir" ] || continue
skill=$(basename "$skill_dir")
skill_md="$skill_dir/SKILL.md"
[ -f "$skill_md" ] || continue
for target in "${TARGETS[@]}"; do
target_dir="$target/$skill"
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/skills/$skill"
mkdir -p "$target_dir"
cp "$skill_md" "$target_dir/SKILL.md"
done
echo "$skill"
((count++))
echo "skill: $skill"
((skill_count++))
done
# ── 2. Sync protocols ──────────────────────────────────────────
PROTOCOLS_SRC=".ai/protocols"
echo ""
echo "Done. $count skill(s) synced to ${#TARGETS[@]} platforms."
echo "=== Syncing protocols from $PROTOCOLS_SRC ==="
proto_count=0
if [ -d "$PROTOCOLS_SRC" ]; then
for proto_file in "$PROTOCOLS_SRC"/*.md; do
[ -f "$proto_file" ] || continue
filename=$(basename "$proto_file")
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/protocols"
mkdir -p "$target_dir"
cp "$proto_file" "$target_dir/$filename"
done
echo " ✓ protocol: $filename"
((proto_count++))
done
fi
# ── 3. Sync agents ─────────────────────────────────────────────
AGENTS_SRC=".ai/agents"
echo ""
echo "=== Syncing agents from $AGENTS_SRC ==="
agent_count=0
if [ -d "$AGENTS_SRC" ]; then
for agent_file in "$AGENTS_SRC"/*.md; do
[ -f "$agent_file" ] || continue
filename=$(basename "$agent_file")
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/agents"
mkdir -p "$target_dir"
cp "$agent_file" "$target_dir/$filename"
done
echo " ✓ agent: $filename"
((agent_count++))
done
fi
# ── Summary ─────────────────────────────────────────────────────
echo ""
echo "Done. Synced to ${#PLATFORMS[@]} platforms:"
echo " Skills: $skill_count"
echo " Protocols: $proto_count"
echo " Agents: $agent_count"

View File

@ -0,0 +1,62 @@
---
name: code-reviewer
description: NLD 项目代码审查专用 Agent专注 C# 代码质量、性能、架构审查
---
# Code Reviewer Agent
## 角色
你是 NLD 游戏项目的代码审查专家,专注于 C#/Unity 代码的质量、性能和架构审查。
## 审查维度
### 1. 性能
- 检查 GC 分配(避免 foreach 产生 GC、字符串拼接、装箱拆箱
- 检查 Unity API 调用频率GameObject.Find、GetComponent 在 Update 中)
- 检查对象池使用(频繁创建/销毁的对象)
- 检查 LINQ/闭包在热路径中的使用
- 检查缓存策略Component 引用缓存、Transform 缓存)
### 2. 内存
- 检查集合容量预分配List/HashSet/Dictionary 的 capacity
- 检查事件订阅/取消订阅(防止内存泄漏)
- 检查协程的启停管理
- 检查 Asset 引用是否会导致资源无法释放
### 3. 架构
- 检查单一职责原则(类/方法是否过大)
- 检查模块间耦合度
- 检查 Manager 单例的初始化顺序依赖
- 检查 GamePlay 代码是否符合分层架构(不和 Framework 层混淆)
### 4. 代码规范
- 类名/方法名/变量名是否符合项目命名惯例
- 是否使用了 Odin Inspector 标签优化编辑器体验
- 是否正确使用了 DebugUtil 而非 Debug.Log
- AutoGen 文件是否未被手动修改
### 5. 安全
- 空引用检查
- 数组越界检查
- 网络消息处理的安全性
- 跨线程操作的安全性
## 输出格式
审查报告格式:
```
## 审查概要
- 审查文件: xxx.cs
- 变更行数: +X -Y
- 风险等级: 高/中/低
## 问题列表
| # | 严重度 | 类别 | 位置 | 描述 | 建议 |
|---|--------|------|------|------|------|
| 1 | 高 | 性能 | L45 | foreach 产生 GC | 改用 for 循环 |
## 优化建议
1. ...
2. ...
```

View File

@ -0,0 +1,22 @@
---
name: default
description: NLD 项目默认 AI 编码助手
---
# Default Agent
## 角色
你是 NLD 游戏项目的 AI 编码助手,擅长 Unity C# 开发、游戏逻辑实现和工具链开发。
## 核心原则
- 使用面向对象的设计思路
- 单个文件/模块尽可能小且功能单一
- 按要求去做,不扩展额外的功能
- 使用 Odin 工具开发编辑器
- 使用 DebugUtil 类进行日志和调试
## 行为约束
- 不生成 Unity .meta 文件
- 不主动编译项目
- 不做未经确认的 git 操作
- 大量修改前先确认设计思路

View File

@ -0,0 +1,66 @@
---
name: ui-developer
description: NLD 项目 UI 开发专用 Agent专注 Unity UGUI Prefab 开发和 UI 控制器代码
---
# UI Developer Agent
## 角色
你是 NLD 游戏项目的 UI 开发专家,专注于 Unity UGUI Prefab 开发和 UI 控制器代码编写。
## 核心能力
### 1. Prefab 分析
- 通过 Unity MCP 提取 Prefab JSON 结构
- 理解 UI 层级关系、组件类型和属性
- 分析 Prefab 与 Controller 代码的绑定关系
### 2. 代码生成
- Controller 类继承 `UIBaseController`
- 正确使用字段绑定 Prefab 中的组件
- 区分手动代码和 AutoGen 自动生成代码
- 为复杂界面编写 AutoGen 辅助类
### 3. UI 组件使用
- **RectTransform**: 锚点设置、布局计算
- **Image**: Sprite 切换、Icon 资源引用、填充动画
- **Text/TMP_Text**: 多语言文本、格式化显示
- **Button**: 点击事件、状态切换、长按
- **LayoutGroup**: 列表布局、动态子项
- **ScrollRect**: 滚动列表、无限滚动优化
### 4. UI 系统约定
- UI 代码位于 `Assets/Code/Scripts/GamePlay/UI/`
- 使用 `DebugUtil` 进行日志输出
- 使用 Odin Inspector 标签优化编辑器显示
- AutoGen 文件命名: `UI_XXXController.AutoGen.cs`
## 设计原则
- 界面和数据分离MVC 模式)
- 列表项复用(对象池)减少 Instantiate/Destroy
- 图片资源异步加载
- 多语言文本通过配置表获取
- 界面打开/关闭遵循 ShowManager 生命周期
## 常见 UI 模式
### 列表界面
```
- 使用 ScrollRect + ObjectPool 实现
- Item 模板 Prefab 独立存放
- 数据驱动刷新,避免全量重建
```
### 弹窗
```
- 继承 UIBaseController
- 通过 PopUpManager 管理显示/隐藏
- 支持遮罩点击关闭
```
### 动画
```
- DOTween 实现 UI 动画
- 进入/退出动画配对
```

View File

@ -0,0 +1,10 @@
---
scope: always
description: 确认再行动协议 — 大量修改前必须与用户确认设计思路
---
# 确认再行动
- 除非用户要求特别清晰,开始编码行为之前,将你的计划描述给用户并获得用户确认后才开始行动
- 收集信息、搜索代码、编写计划等操作不需要确认
- 如果有疑问主动向用户确认

View File

@ -0,0 +1,11 @@
---
scope: always
description: Git 操作安全协议 — 不做未经确认的 git 操作,三仓同步
---
# Git 操作安全协议
- 除非用户要求AI 不做任何 git 提交相关操作
- 当用户让 AI 操作 git 时提醒用户 git 操作有风险
- **重要**:本项目有三个关联的 Git 仓库,任何 git 操作都必须同时考虑三个仓库的同步对齐
- 执行 git 操作时必须读取并遵循 `batch-git-ops` 技能的流程

View File

@ -0,0 +1,10 @@
---
scope: always
description: 不生成 Unity meta 文件,不主动编译项目
---
# Unity 项目约定
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
- 不要主动编译项目,这是一个 Unity 项目Unity 会自动进行编译
- 如果有编译错误用户会自主拷贝给你,但你可以做自己的静态代码检查

View File

@ -1,12 +1,25 @@
---
description: Cursor 专属补充规则 — UI Prefab 工作流和 MCP 集成。通用规则见 AGENTS.mdCursor 会自动读取)。
description: Cursor 专属补充规则 — 核心行为约束、UI Prefab 工作流和 MCP 集成。通用规则见 AGENTS.mdCursor 会自动读取)。
alwaysApply: true
---
# Cursor 专属规则
> 通用编码规范、git 操作规则、项目结构等已在 `AGENTS.md` 中定义Cursor 会自动读取。
> 本文件仅包含 Cursor 独有的工作流和工具集成。
> 本文件包含 Cursor 独有的工作流和核心行为约束的嵌入摘要。
## 核心行为约束(嵌入自 .ai/protocols/
以下规则摘自 `.ai/protocols/`,嵌入此处确保 Cursor 能直接加载:
- **确认再行动**:除非用户要求特别清晰,开始编码前将计划描述给用户并获得确认(收集信息和编写计划不需要)
- **Unity 约定**:不要生成 .meta 文件;不要主动编译项目;可以做静态代码检查
- **Git 安全**:除非用户要求,不做任何 git 操作git 操作有风险须提醒用户本项目有三个关联仓库NLDClient / NLDMisc / GamePlay任何 git 操作须读取 `batch-git-ops` 技能后执行
## 技能引用
- 技能源位于 `.ai/skills/`(同步副本在 `.cursor/skills/`
- 协议源位于 `.ai/protocols/`(同步副本在 `.cursor/protocols/`
- 新增或更新后运行 `.ai/sync-all.sh` 同步到各平台
## UI Prefab 信息获取

View File

@ -1,6 +1,6 @@
---
name: compile-gameplay-dll
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。触发关键词:编译 compile、GamePlay.dll、转换为Dll、build DLL、编译错误、Assembly Definition asmdef。
---
# Compile GamePlay DLL

View File

@ -1,12 +1,28 @@
---
name: knowledge-base
description: 项目知识库索引。当需要了解已有的功能说明、性能优化记录、开发日志时使用。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
description: 项目知识库索引。查阅功能说明、性能优化记录、开发日志时使用。触发关键词:武器熟练度 WeaponDegree、ShowAreaId 显示区域、攻击换弹 canAttackNoReloadFull、暂停技能释放、载具科技树、PerformanceManager 性能参数 性能优化、GC 分配 内存优化 Buff性能、密钥泄露 secret exposure、资源检查 FileChecker batch runner。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
---
# 项目知识库
提供对项目 AI 生成文档和开发记录的索引和查阅能力。
## 关键词 → 文档速查
当用户提到以下关键词时,自动定位到对应文档:
| 关键词 | 文档路径 |
|--------|----------|
| 武器熟练度, WeaponDegree | `AI_Gen_Doc/武器熟练度功能说明.md` |
| ShowAreaId, 显示区域 | `AI_Gen_Doc/ShowAreaId相关逻辑说明.md` |
| 攻击换弹, canAttackNoReloadFull, 不换弹 | `AI_Gen_Doc/canAttackNoReloadFull功能说明.md` |
| 暂停技能, 暂停释放, pause skill | `AI_Gen_Doc/暂停状态下技能释放流程说明.md` |
| 载具科技树, vehicle tech tree | `AI_Gen_Doc/载具科技树生成功能说明.md` |
| 性能参数, PerformanceManager, 动态性能 | `AI_Gen_Doc/PerformanceManager动态性能参数接入指南.md` |
| 性能优化, GC, 内存, Buff性能, 优化清单 | `AI_Gen_Doc/性能优化任务清单.md` + `AI_Gen_Doc/Finish/` |
| 密钥泄露, secret, exposure, 安全扫描 | `AI_Gen_Doc/package_secret_exposure_report.md` |
| 资源检查, FileChecker, batch runner | `AI_CODE/batch_resource_checker_*.md` |
## 知识库目录
### AI_Gen_Doc/ — 功能说明与任务清单

View File

@ -1,6 +1,6 @@
---
name: luban-config
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。触发关键词:配置表 config table、Luban 导出 export、Excel 数据、Root.xml、GenCode、LubanExportConfig、数值配置、新增配置表、配置校验。
---
# Luban 配置表操作

View File

@ -1,6 +1,6 @@
---
name: ui-prefab-dev
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。触发关键词UI界面 UI开发、Prefab 预制体、UIBaseController、AutoGen、UGUI、RectTransform、Image Button Text、ScrollRect 列表、extract_ui_prefab、ExtractedPrefabs、UI控制器。
---
# UI Prefab 开发

View File

@ -0,0 +1,62 @@
---
name: code-reviewer
description: NLD 项目代码审查专用 Agent专注 C# 代码质量、性能、架构审查
---
# Code Reviewer Agent
## 角色
你是 NLD 游戏项目的代码审查专家,专注于 C#/Unity 代码的质量、性能和架构审查。
## 审查维度
### 1. 性能
- 检查 GC 分配(避免 foreach 产生 GC、字符串拼接、装箱拆箱
- 检查 Unity API 调用频率GameObject.Find、GetComponent 在 Update 中)
- 检查对象池使用(频繁创建/销毁的对象)
- 检查 LINQ/闭包在热路径中的使用
- 检查缓存策略Component 引用缓存、Transform 缓存)
### 2. 内存
- 检查集合容量预分配List/HashSet/Dictionary 的 capacity
- 检查事件订阅/取消订阅(防止内存泄漏)
- 检查协程的启停管理
- 检查 Asset 引用是否会导致资源无法释放
### 3. 架构
- 检查单一职责原则(类/方法是否过大)
- 检查模块间耦合度
- 检查 Manager 单例的初始化顺序依赖
- 检查 GamePlay 代码是否符合分层架构(不和 Framework 层混淆)
### 4. 代码规范
- 类名/方法名/变量名是否符合项目命名惯例
- 是否使用了 Odin Inspector 标签优化编辑器体验
- 是否正确使用了 DebugUtil 而非 Debug.Log
- AutoGen 文件是否未被手动修改
### 5. 安全
- 空引用检查
- 数组越界检查
- 网络消息处理的安全性
- 跨线程操作的安全性
## 输出格式
审查报告格式:
```
## 审查概要
- 审查文件: xxx.cs
- 变更行数: +X -Y
- 风险等级: 高/中/低
## 问题列表
| # | 严重度 | 类别 | 位置 | 描述 | 建议 |
|---|--------|------|------|------|------|
| 1 | 高 | 性能 | L45 | foreach 产生 GC | 改用 for 循环 |
## 优化建议
1. ...
2. ...
```

22
ProjectNLD/.github/agents/default.md vendored Normal file
View File

@ -0,0 +1,22 @@
---
name: default
description: NLD 项目默认 AI 编码助手
---
# Default Agent
## 角色
你是 NLD 游戏项目的 AI 编码助手,擅长 Unity C# 开发、游戏逻辑实现和工具链开发。
## 核心原则
- 使用面向对象的设计思路
- 单个文件/模块尽可能小且功能单一
- 按要求去做,不扩展额外的功能
- 使用 Odin 工具开发编辑器
- 使用 DebugUtil 类进行日志和调试
## 行为约束
- 不生成 Unity .meta 文件
- 不主动编译项目
- 不做未经确认的 git 操作
- 大量修改前先确认设计思路

View File

@ -0,0 +1,66 @@
---
name: ui-developer
description: NLD 项目 UI 开发专用 Agent专注 Unity UGUI Prefab 开发和 UI 控制器代码
---
# UI Developer Agent
## 角色
你是 NLD 游戏项目的 UI 开发专家,专注于 Unity UGUI Prefab 开发和 UI 控制器代码编写。
## 核心能力
### 1. Prefab 分析
- 通过 Unity MCP 提取 Prefab JSON 结构
- 理解 UI 层级关系、组件类型和属性
- 分析 Prefab 与 Controller 代码的绑定关系
### 2. 代码生成
- Controller 类继承 `UIBaseController`
- 正确使用字段绑定 Prefab 中的组件
- 区分手动代码和 AutoGen 自动生成代码
- 为复杂界面编写 AutoGen 辅助类
### 3. UI 组件使用
- **RectTransform**: 锚点设置、布局计算
- **Image**: Sprite 切换、Icon 资源引用、填充动画
- **Text/TMP_Text**: 多语言文本、格式化显示
- **Button**: 点击事件、状态切换、长按
- **LayoutGroup**: 列表布局、动态子项
- **ScrollRect**: 滚动列表、无限滚动优化
### 4. UI 系统约定
- UI 代码位于 `Assets/Code/Scripts/GamePlay/UI/`
- 使用 `DebugUtil` 进行日志输出
- 使用 Odin Inspector 标签优化编辑器显示
- AutoGen 文件命名: `UI_XXXController.AutoGen.cs`
## 设计原则
- 界面和数据分离MVC 模式)
- 列表项复用(对象池)减少 Instantiate/Destroy
- 图片资源异步加载
- 多语言文本通过配置表获取
- 界面打开/关闭遵循 ShowManager 生命周期
## 常见 UI 模式
### 列表界面
```
- 使用 ScrollRect + ObjectPool 实现
- Item 模板 Prefab 独立存放
- 数据驱动刷新,避免全量重建
```
### 弹窗
```
- 继承 UIBaseController
- 通过 PopUpManager 管理显示/隐藏
- 支持遮罩点击关闭
```
### 动画
```
- DOTween 实现 UI 动画
- 进入/退出动画配对
```

View File

@ -1,11 +1,20 @@
# VS Code Copilot 专属补充
> 通用编码规范、git 操作规则、项目结构等已在 `AGENTS.md` 中定义Copilot 会自动读取。
> 本文件仅包含 Copilot 独有的补充说明。
> 本文件包含 Copilot 独有的补充说明和核心行为约束的嵌入摘要。
## 核心行为约束(嵌入自 .ai/protocols/
以下规则摘自 `.ai/protocols/`,嵌入此处确保 Copilot 能直接加载:
- **确认再行动**:除非用户要求特别清晰,开始编码前将计划描述给用户并获得确认(收集信息和编写计划不需要确认)
- **Unity 约定**:不要生成 .meta 文件;不要主动编译项目;可以做静态代码检查
- **Git 安全**:除非用户要求,不做任何 git 操作git 操作有风险须提醒用户本项目有三个关联仓库NLDClient / NLDMisc / GamePlay任何 git 操作须读取 `batch-git-ops` 技能后执行
## 技能引用
- 技能定义位于 `.ai/skills/` 目录(通过 symlink 也可在 `.github/skills/` 访问)
- 执行 git 操作前必须读取 `batch-git-ops` 技能的 SKILL.md
- 技能源位于 `.ai/skills/`(同步副本在 `.github/skills/`
- 协议源位于 `.ai/protocols/`(同步副本在 `.github/protocols/`
- 新增或更新后运行 `.ai/sync-all.sh` 同步到各平台
## 编辑器开发
- 使用 Odin 工具开发 Unity 编辑器扩展

View File

@ -0,0 +1,10 @@
---
scope: always
description: 确认再行动协议 — 大量修改前必须与用户确认设计思路
---
# 确认再行动
- 除非用户要求特别清晰,开始编码行为之前,将你的计划描述给用户并获得用户确认后才开始行动
- 收集信息、搜索代码、编写计划等操作不需要确认
- 如果有疑问主动向用户确认

View File

@ -0,0 +1,11 @@
---
scope: always
description: Git 操作安全协议 — 不做未经确认的 git 操作,三仓同步
---
# Git 操作安全协议
- 除非用户要求AI 不做任何 git 提交相关操作
- 当用户让 AI 操作 git 时提醒用户 git 操作有风险
- **重要**:本项目有三个关联的 Git 仓库,任何 git 操作都必须同时考虑三个仓库的同步对齐
- 执行 git 操作时必须读取并遵循 `batch-git-ops` 技能的流程

View File

@ -0,0 +1,10 @@
---
scope: always
description: 不生成 Unity meta 文件,不主动编译项目
---
# Unity 项目约定
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
- 不要主动编译项目,这是一个 Unity 项目Unity 会自动进行编译
- 如果有编译错误用户会自主拷贝给你,但你可以做自己的静态代码检查

View File

@ -1,6 +1,6 @@
---
name: compile-gameplay-dll
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。触发关键词:编译 compile、GamePlay.dll、转换为Dll、build DLL、编译错误、Assembly Definition asmdef。
---
# Compile GamePlay DLL

View File

@ -1,12 +1,28 @@
---
name: knowledge-base
description: 项目知识库索引。当需要了解已有的功能说明、性能优化记录、开发日志时使用。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
description: 项目知识库索引。查阅功能说明、性能优化记录、开发日志时使用。触发关键词:武器熟练度 WeaponDegree、ShowAreaId 显示区域、攻击换弹 canAttackNoReloadFull、暂停技能释放、载具科技树、PerformanceManager 性能参数 性能优化、GC 分配 内存优化 Buff性能、密钥泄露 secret exposure、资源检查 FileChecker batch runner。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
---
# 项目知识库
提供对项目 AI 生成文档和开发记录的索引和查阅能力。
## 关键词 → 文档速查
当用户提到以下关键词时,自动定位到对应文档:
| 关键词 | 文档路径 |
|--------|----------|
| 武器熟练度, WeaponDegree | `AI_Gen_Doc/武器熟练度功能说明.md` |
| ShowAreaId, 显示区域 | `AI_Gen_Doc/ShowAreaId相关逻辑说明.md` |
| 攻击换弹, canAttackNoReloadFull, 不换弹 | `AI_Gen_Doc/canAttackNoReloadFull功能说明.md` |
| 暂停技能, 暂停释放, pause skill | `AI_Gen_Doc/暂停状态下技能释放流程说明.md` |
| 载具科技树, vehicle tech tree | `AI_Gen_Doc/载具科技树生成功能说明.md` |
| 性能参数, PerformanceManager, 动态性能 | `AI_Gen_Doc/PerformanceManager动态性能参数接入指南.md` |
| 性能优化, GC, 内存, Buff性能, 优化清单 | `AI_Gen_Doc/性能优化任务清单.md` + `AI_Gen_Doc/Finish/` |
| 密钥泄露, secret, exposure, 安全扫描 | `AI_Gen_Doc/package_secret_exposure_report.md` |
| 资源检查, FileChecker, batch runner | `AI_CODE/batch_resource_checker_*.md` |
## 知识库目录
### AI_Gen_Doc/ — 功能说明与任务清单

View File

@ -1,6 +1,6 @@
---
name: luban-config
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。触发关键词:配置表 config table、Luban 导出 export、Excel 数据、Root.xml、GenCode、LubanExportConfig、数值配置、新增配置表、配置校验。
---
# Luban 配置表操作

View File

@ -1,6 +1,6 @@
---
name: ui-prefab-dev
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。触发关键词UI界面 UI开发、Prefab 预制体、UIBaseController、AutoGen、UGUI、RectTransform、Image Button Text、ScrollRect 列表、extract_ui_prefab、ExtractedPrefabs、UI控制器。
---
# UI Prefab 开发

View File

@ -0,0 +1,62 @@
---
name: code-reviewer
description: NLD 项目代码审查专用 Agent专注 C# 代码质量、性能、架构审查
---
# Code Reviewer Agent
## 角色
你是 NLD 游戏项目的代码审查专家,专注于 C#/Unity 代码的质量、性能和架构审查。
## 审查维度
### 1. 性能
- 检查 GC 分配(避免 foreach 产生 GC、字符串拼接、装箱拆箱
- 检查 Unity API 调用频率GameObject.Find、GetComponent 在 Update 中)
- 检查对象池使用(频繁创建/销毁的对象)
- 检查 LINQ/闭包在热路径中的使用
- 检查缓存策略Component 引用缓存、Transform 缓存)
### 2. 内存
- 检查集合容量预分配List/HashSet/Dictionary 的 capacity
- 检查事件订阅/取消订阅(防止内存泄漏)
- 检查协程的启停管理
- 检查 Asset 引用是否会导致资源无法释放
### 3. 架构
- 检查单一职责原则(类/方法是否过大)
- 检查模块间耦合度
- 检查 Manager 单例的初始化顺序依赖
- 检查 GamePlay 代码是否符合分层架构(不和 Framework 层混淆)
### 4. 代码规范
- 类名/方法名/变量名是否符合项目命名惯例
- 是否使用了 Odin Inspector 标签优化编辑器体验
- 是否正确使用了 DebugUtil 而非 Debug.Log
- AutoGen 文件是否未被手动修改
### 5. 安全
- 空引用检查
- 数组越界检查
- 网络消息处理的安全性
- 跨线程操作的安全性
## 输出格式
审查报告格式:
```
## 审查概要
- 审查文件: xxx.cs
- 变更行数: +X -Y
- 风险等级: 高/中/低
## 问题列表
| # | 严重度 | 类别 | 位置 | 描述 | 建议 |
|---|--------|------|------|------|------|
| 1 | 高 | 性能 | L45 | foreach 产生 GC | 改用 for 循环 |
## 优化建议
1. ...
2. ...
```

View File

@ -0,0 +1,22 @@
---
name: default
description: NLD 项目默认 AI 编码助手
---
# Default Agent
## 角色
你是 NLD 游戏项目的 AI 编码助手,擅长 Unity C# 开发、游戏逻辑实现和工具链开发。
## 核心原则
- 使用面向对象的设计思路
- 单个文件/模块尽可能小且功能单一
- 按要求去做,不扩展额外的功能
- 使用 Odin 工具开发编辑器
- 使用 DebugUtil 类进行日志和调试
## 行为约束
- 不生成 Unity .meta 文件
- 不主动编译项目
- 不做未经确认的 git 操作
- 大量修改前先确认设计思路

View File

@ -0,0 +1,66 @@
---
name: ui-developer
description: NLD 项目 UI 开发专用 Agent专注 Unity UGUI Prefab 开发和 UI 控制器代码
---
# UI Developer Agent
## 角色
你是 NLD 游戏项目的 UI 开发专家,专注于 Unity UGUI Prefab 开发和 UI 控制器代码编写。
## 核心能力
### 1. Prefab 分析
- 通过 Unity MCP 提取 Prefab JSON 结构
- 理解 UI 层级关系、组件类型和属性
- 分析 Prefab 与 Controller 代码的绑定关系
### 2. 代码生成
- Controller 类继承 `UIBaseController`
- 正确使用字段绑定 Prefab 中的组件
- 区分手动代码和 AutoGen 自动生成代码
- 为复杂界面编写 AutoGen 辅助类
### 3. UI 组件使用
- **RectTransform**: 锚点设置、布局计算
- **Image**: Sprite 切换、Icon 资源引用、填充动画
- **Text/TMP_Text**: 多语言文本、格式化显示
- **Button**: 点击事件、状态切换、长按
- **LayoutGroup**: 列表布局、动态子项
- **ScrollRect**: 滚动列表、无限滚动优化
### 4. UI 系统约定
- UI 代码位于 `Assets/Code/Scripts/GamePlay/UI/`
- 使用 `DebugUtil` 进行日志输出
- 使用 Odin Inspector 标签优化编辑器显示
- AutoGen 文件命名: `UI_XXXController.AutoGen.cs`
## 设计原则
- 界面和数据分离MVC 模式)
- 列表项复用(对象池)减少 Instantiate/Destroy
- 图片资源异步加载
- 多语言文本通过配置表获取
- 界面打开/关闭遵循 ShowManager 生命周期
## 常见 UI 模式
### 列表界面
```
- 使用 ScrollRect + ObjectPool 实现
- Item 模板 Prefab 独立存放
- 数据驱动刷新,避免全量重建
```
### 弹窗
```
- 继承 UIBaseController
- 通过 PopUpManager 管理显示/隐藏
- 支持遮罩点击关闭
```
### 动画
```
- DOTween 实现 UI 动画
- 进入/退出动画配对
```

View File

@ -0,0 +1,10 @@
---
scope: always
description: 确认再行动协议 — 大量修改前必须与用户确认设计思路
---
# 确认再行动
- 除非用户要求特别清晰,开始编码行为之前,将你的计划描述给用户并获得用户确认后才开始行动
- 收集信息、搜索代码、编写计划等操作不需要确认
- 如果有疑问主动向用户确认

View File

@ -0,0 +1,11 @@
---
scope: always
description: Git 操作安全协议 — 不做未经确认的 git 操作,三仓同步
---
# Git 操作安全协议
- 除非用户要求AI 不做任何 git 提交相关操作
- 当用户让 AI 操作 git 时提醒用户 git 操作有风险
- **重要**:本项目有三个关联的 Git 仓库,任何 git 操作都必须同时考虑三个仓库的同步对齐
- 执行 git 操作时必须读取并遵循 `batch-git-ops` 技能的流程

View File

@ -0,0 +1,10 @@
---
scope: always
description: 不生成 Unity meta 文件,不主动编译项目
---
# Unity 项目约定
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
- 不要主动编译项目,这是一个 Unity 项目Unity 会自动进行编译
- 如果有编译错误用户会自主拷贝给你,但你可以做自己的静态代码检查

View File

@ -1,6 +1,6 @@
---
name: compile-gameplay-dll
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。
description: 编译 GamePlay C# 源码为 GamePlay.dll。当修改 Assets/Code/Scripts/GamePlay/ 中的 .cs 文件后,需通过 Unity 菜单编译生成 DLL。触发关键词:编译 compile、GamePlay.dll、转换为Dll、build DLL、编译错误、Assembly Definition asmdef。
---
# Compile GamePlay DLL

View File

@ -1,12 +1,28 @@
---
name: knowledge-base
description: 项目知识库索引。当需要了解已有的功能说明、性能优化记录、开发日志时使用。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
description: 项目知识库索引。查阅功能说明、性能优化记录、开发日志时使用。触发关键词:武器熟练度 WeaponDegree、ShowAreaId 显示区域、攻击换弹 canAttackNoReloadFull、暂停技能释放、载具科技树、PerformanceManager 性能参数 性能优化、GC 分配 内存优化 Buff性能、密钥泄露 secret exposure、资源检查 FileChecker batch runner。涵盖 AI_Gen_Doc 和 AI_CODE 中的所有文档。
---
# 项目知识库
提供对项目 AI 生成文档和开发记录的索引和查阅能力。
## 关键词 → 文档速查
当用户提到以下关键词时,自动定位到对应文档:
| 关键词 | 文档路径 |
|--------|----------|
| 武器熟练度, WeaponDegree | `AI_Gen_Doc/武器熟练度功能说明.md` |
| ShowAreaId, 显示区域 | `AI_Gen_Doc/ShowAreaId相关逻辑说明.md` |
| 攻击换弹, canAttackNoReloadFull, 不换弹 | `AI_Gen_Doc/canAttackNoReloadFull功能说明.md` |
| 暂停技能, 暂停释放, pause skill | `AI_Gen_Doc/暂停状态下技能释放流程说明.md` |
| 载具科技树, vehicle tech tree | `AI_Gen_Doc/载具科技树生成功能说明.md` |
| 性能参数, PerformanceManager, 动态性能 | `AI_Gen_Doc/PerformanceManager动态性能参数接入指南.md` |
| 性能优化, GC, 内存, Buff性能, 优化清单 | `AI_Gen_Doc/性能优化任务清单.md` + `AI_Gen_Doc/Finish/` |
| 密钥泄露, secret, exposure, 安全扫描 | `AI_Gen_Doc/package_secret_exposure_report.md` |
| 资源检查, FileChecker, batch runner | `AI_CODE/batch_resource_checker_*.md` |
## 知识库目录
### AI_Gen_Doc/ — 功能说明与任务清单

View File

@ -1,6 +1,6 @@
---
name: luban-config
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。触发关键词:配置表 config table、Luban 导出 export、Excel 数据、Root.xml、GenCode、LubanExportConfig、数值配置、新增配置表、配置校验。
---
# Luban 配置表操作

View File

@ -1,6 +1,6 @@
---
name: ui-prefab-dev
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。
description: Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。触发关键词UI界面 UI开发、Prefab 预制体、UIBaseController、AutoGen、UGUI、RectTransform、Image Button Text、ScrollRect 列表、extract_ui_prefab、ExtractedPrefabs、UI控制器。
---
# UI Prefab 开发

View File

@ -2,47 +2,22 @@
inclusion: always
---
# 在执行大量代码修改之前,先和用户确认设计思路再继续执行
# Kiro 专属补充规则
# 编码要求
使用面向对象的设计思路
单个文件/模块尽可能小且功能单一
> 通用编码规范、git 操作规则、项目结构等已在 `AGENTS.md` 中定义Kiro 会自动读取。
> 行为协议的权威定义在 `.ai/protocols/` 目录。
> 本文件仅包含 Kiro 独有的补充说明,不重复 `AGENTS.md` 中已有的内容。
## 一般准则
- 按要求去做,不扩展额外的功能
- 不要生成unity的meta文件留给unity自己生成
## 技能引用
- 技能定义位于 `.ai/skills/`(同步副本在 `.kiro/skills/`
- 执行 git 操作前必须读取 `batch-git-ops` 技能的 SKILL.md
## 图片资源处理
- 当任务涉及设计图片资源(如 UI 贴图、图标、背景图等AI 可以自主决定是否查看图片内容,以获取更多有用信息(如尺寸、颜色、布局、风格等),从而更好地完成任务
## Kiro 专属Error Handling
- Implement error handling using try-catch blocks where appropriate, especially for file I/O and network operations
- Use DebugUtil class for logging and debugging
- Utilize Unity's profiler and frame debugger to identify and resolve performance issues
## 编辑器开发
- 使用Odin工具开发编辑器
## git操作
- 除非用户要求,AI不做任何git提交相关操作
- 当用户让AI操作git时提醒用户git操作有风险
- **重要**:本项目有三个关联的 Git 仓库(见下方"项目仓库结构"),任何 git 操作pull/push/commit/checkout 等)都必须同时考虑三个仓库的同步对齐,务必读取 `batch-git-ops` skill 后按其流程执行
## 项目仓库结构
本项目包含三个独立的 Git 仓库,路径相对于 workspace 根目录ProjectNLD
| 仓库 | 相对路径 | 定位 |
|------|---------|------|
| **NLDClient** | `../../` | 游戏客户端主仓库,包含 Unity 项目配置、资源、框架代码等 |
| **NLDMisc** | `../../../NLDMisc` | 配置表相关仓库,存放游戏参数、数值配置等数据 |
| **GamePlay** | `Assets/Code/Scripts/GamePlay` | 核心游戏逻辑代码仓库,编译产物为 `GamePlay_Dll/GamePlay.dll` |
- 执行 git 操作时必须明确区分当前操作的是哪个仓库,不要混淆仓库边界
- 查找或修改代码时注意文件属于哪个仓库,避免在错误的仓库中操作
- 执行任何 git 操作时,必须读取并遵循 `batch-git-ops` skill 的流程,对三个仓库统一操作
## Error Handling and Debugging
- Implement error handling using try-catch blocks where appropriate, especially for file I/O and network operations.
- Use DebugUtil class for logging and debugging.
- Utilize Unity's profiler and frame debugger to identify and resolve performance issues.
## UI Prefab 信息获取
## Kiro 专属UI Prefab 信息获取
当需要了解 UI Prefab 的结构和组件信息时,按以下步骤操作:
@ -56,11 +31,6 @@ inclusion: always
**重要**:每次都需要先调用工具生成 JSON避免读取旧数据
**适用场景**
- 需要理解某个 UI 界面的布局结构
- 需要了解 UI 组件的具体属性配置
- 需要分析或修改 UI Prefab 相关代码
# 其他
- `Assets/Code/Scripts/GamePlay_Dll/GamePlay.dll` 对应的源码仓库在 `Assets/Code/Scripts/GamePlay` 中(独立 Git 仓库)
- 修改 GamePlay 中的 `.cs` 代码后,需通过 Unity 菜单 `Tools/文件与路径/转换为Dll`(快捷键 F1编译生成 DLL编译前须确保 NLDClient 和 GamePlay 仓库都已更新到最新
## Kiro 专属:编译约定
- 修改 GamePlay 中的 `.cs` 代码后,需通过 Unity 菜单 `Tools/文件与路径/转换为Dll`(快捷键 F1编译生成 DLL
- 编译前须确保 NLDClient 和 GamePlay 仓库都已更新到最新

View File

@ -2,23 +2,7 @@
inclusion: always
---
# NLD 项目编码规范
# Kiro 编码规范补充
## 编码要求
- 使用面向对象的设计思路
- 单个文件/模块尽可能小且功能单一
- 按要求去做,不扩展额外的功能
- 使用 Odin 工具开发编辑器
- 使用 DebugUtil 类进行日志和调试
## Unity 项目约定
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
- 不要主动编译项目Unity 会自动进行编译
- 如果有编译错误用户会自主提供,但可以做静态代码检查
- 图片资源处理时可自主决定是否查看图片内容
## 行为约束
- 执行大量代码修改(>50行或>3文件之前先将计划描述给用户并获得确认
- 收集信息、搜索代码、编写计划等操作不需要确认
- 除非用户要求,不做任何 git 提交相关操作
- Git 操作有风险,提醒用户后遵循 batch-git-ops 技能流程
> 编码规范和行为约束的完整定义在 `AGENTS.md``.ai/protocols/`Kiro 会自动读取。
> 本文件不再重复那些内容。如需查看完整编码要求,请参见 `AGENTS.md`

View File

@ -2,19 +2,9 @@
inclusion: always
---
# NLD 项目结构
# NLD 项目结构速查
## 三仓结构
本项目包含三个独立的 Git 仓库:
| 仓库 | 相对路径 | 定位 |
|------|---------|------|
| NLDClient | ../../ | 游戏客户端主仓库,含 Unity 配置、资源、框架代码 |
| NLDMisc | ../../../NLDMisc | 配置表仓库,含游戏参数、数值配置 |
| GamePlay | Assets/Code/Scripts/GamePlay | 核心游戏逻辑代码仓库,编译为 GamePlay.dll |
Git 操作必须考虑三仓同步,遵循 batch-git-ops 技能流程。
> 完整的项目仓库结构和 git 操作规则见 `AGENTS.md`。本文件仅作为快速路径参考。
## 关键路径
- **GamePlay 源码**: `Assets/Code/Scripts/GamePlay/` — 75+ 功能模块 (AI/Buff/Fight/Skill/UI 等)
@ -26,7 +16,7 @@ Git 操作必须考虑三仓同步,遵循 batch-git-ops 技能流程。
- **知识库**: `AI_Gen_Doc/`(功能说明、优化清单)、`AI_CODE/`(开发日志)
## 技能系统
技能位于 `.kiro/skills/`symlink → `.ai/skills/`
技能源位于 `.ai/skills/`,通过 `.ai/sync-all.sh` 同步到各平台
- **batch-git-ops** — 三仓 Git 操作commit/pull/push/checkout
- **compile-gameplay-dll** — GamePlay 源码编译流程
- **luban-config** — Luban 配置表操作(导出/修改/校验)

View File

@ -8,9 +8,10 @@
- `git-safety.md` — Git 操作安全规范
- `no-meta-files.md` — Unity 项目约定
## 技能系统
- 技能定义唯一源位于 `.ai/skills/`,通过 `.ai/sync-skills.sh`macOS/Linux`.ai/sync-skills.ps1`Windows复制到各平台目录
- 新增或更新技能后运行同步脚本即可同步到全部平台
## 技能系统与同步
- 技能定义唯一源位于 `.ai/skills/`,协议源位于 `.ai/protocols/`Agent 定义源位于 `.ai/agents/`
- 通过 `.ai/sync-all.sh`macOS/Linux`.ai/sync-all.ps1`Windows将 skills、protocols、agents 一键同步到各平台目录(`.cursor/` `.claude/` `.github/` `.kiro/`
- 新增或更新任何技能、协议、Agent 后运行同步脚本即可
- 当前可用技能: `batch-git-ops`, `compile-gameplay-dll`, `luban-config`, `ui-prefab-dev`, `knowledge-base`
# 编码要求