【工程】harness 编排优化
parent
e4ab8587d7
commit
cb94ccc58e
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/ — 功能说明与任务清单
|
||||
|
|
|
|||
|
|
@ -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 配置表操作
|
||||
|
|
|
|||
|
|
@ -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 开发
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
@ -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"
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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. ...
|
||||
```
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
name: default
|
||||
description: NLD 项目默认 AI 编码助手
|
||||
---
|
||||
|
||||
# Default Agent
|
||||
|
||||
## 角色
|
||||
你是 NLD 游戏项目的 AI 编码助手,擅长 Unity C# 开发、游戏逻辑实现和工具链开发。
|
||||
|
||||
## 核心原则
|
||||
- 使用面向对象的设计思路
|
||||
- 单个文件/模块尽可能小且功能单一
|
||||
- 按要求去做,不扩展额外的功能
|
||||
- 使用 Odin 工具开发编辑器
|
||||
- 使用 DebugUtil 类进行日志和调试
|
||||
|
||||
## 行为约束
|
||||
- 不生成 Unity .meta 文件
|
||||
- 不主动编译项目
|
||||
- 不做未经确认的 git 操作
|
||||
- 大量修改前先确认设计思路
|
||||
|
|
@ -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 动画
|
||||
- 进入/退出动画配对
|
||||
```
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
scope: always
|
||||
description: 确认再行动协议 — 大量修改前必须与用户确认设计思路
|
||||
---
|
||||
|
||||
# 确认再行动
|
||||
|
||||
- 除非用户要求特别清晰,开始编码行为之前,将你的计划描述给用户并获得用户确认后才开始行动
|
||||
- 收集信息、搜索代码、编写计划等操作不需要确认
|
||||
- 如果有疑问主动向用户确认
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
scope: always
|
||||
description: Git 操作安全协议 — 不做未经确认的 git 操作,三仓同步
|
||||
---
|
||||
|
||||
# Git 操作安全协议
|
||||
|
||||
- 除非用户要求,AI 不做任何 git 提交相关操作
|
||||
- 当用户让 AI 操作 git 时提醒用户 git 操作有风险
|
||||
- **重要**:本项目有三个关联的 Git 仓库,任何 git 操作都必须同时考虑三个仓库的同步对齐
|
||||
- 执行 git 操作时必须读取并遵循 `batch-git-ops` 技能的流程
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
scope: always
|
||||
description: 不生成 Unity meta 文件,不主动编译项目
|
||||
---
|
||||
|
||||
# Unity 项目约定
|
||||
|
||||
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
|
||||
- 不要主动编译项目,这是一个 Unity 项目,Unity 会自动进行编译
|
||||
- 如果有编译错误用户会自主拷贝给你,但你可以做自己的静态代码检查
|
||||
|
|
@ -1,12 +1,25 @@
|
|||
---
|
||||
description: Cursor 专属补充规则 — UI Prefab 工作流和 MCP 集成。通用规则见 AGENTS.md(Cursor 会自动读取)。
|
||||
description: Cursor 专属补充规则 — 核心行为约束、UI Prefab 工作流和 MCP 集成。通用规则见 AGENTS.md(Cursor 会自动读取)。
|
||||
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 信息获取
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/ — 功能说明与任务清单
|
||||
|
|
|
|||
|
|
@ -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 配置表操作
|
||||
|
|
|
|||
|
|
@ -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 开发
|
||||
|
|
|
|||
|
|
@ -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. ...
|
||||
```
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
name: default
|
||||
description: NLD 项目默认 AI 编码助手
|
||||
---
|
||||
|
||||
# Default Agent
|
||||
|
||||
## 角色
|
||||
你是 NLD 游戏项目的 AI 编码助手,擅长 Unity C# 开发、游戏逻辑实现和工具链开发。
|
||||
|
||||
## 核心原则
|
||||
- 使用面向对象的设计思路
|
||||
- 单个文件/模块尽可能小且功能单一
|
||||
- 按要求去做,不扩展额外的功能
|
||||
- 使用 Odin 工具开发编辑器
|
||||
- 使用 DebugUtil 类进行日志和调试
|
||||
|
||||
## 行为约束
|
||||
- 不生成 Unity .meta 文件
|
||||
- 不主动编译项目
|
||||
- 不做未经确认的 git 操作
|
||||
- 大量修改前先确认设计思路
|
||||
|
|
@ -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 动画
|
||||
- 进入/退出动画配对
|
||||
```
|
||||
|
|
@ -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 编辑器扩展
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
scope: always
|
||||
description: 确认再行动协议 — 大量修改前必须与用户确认设计思路
|
||||
---
|
||||
|
||||
# 确认再行动
|
||||
|
||||
- 除非用户要求特别清晰,开始编码行为之前,将你的计划描述给用户并获得用户确认后才开始行动
|
||||
- 收集信息、搜索代码、编写计划等操作不需要确认
|
||||
- 如果有疑问主动向用户确认
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
scope: always
|
||||
description: Git 操作安全协议 — 不做未经确认的 git 操作,三仓同步
|
||||
---
|
||||
|
||||
# Git 操作安全协议
|
||||
|
||||
- 除非用户要求,AI 不做任何 git 提交相关操作
|
||||
- 当用户让 AI 操作 git 时提醒用户 git 操作有风险
|
||||
- **重要**:本项目有三个关联的 Git 仓库,任何 git 操作都必须同时考虑三个仓库的同步对齐
|
||||
- 执行 git 操作时必须读取并遵循 `batch-git-ops` 技能的流程
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
scope: always
|
||||
description: 不生成 Unity meta 文件,不主动编译项目
|
||||
---
|
||||
|
||||
# Unity 项目约定
|
||||
|
||||
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
|
||||
- 不要主动编译项目,这是一个 Unity 项目,Unity 会自动进行编译
|
||||
- 如果有编译错误用户会自主拷贝给你,但你可以做自己的静态代码检查
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/ — 功能说明与任务清单
|
||||
|
|
|
|||
|
|
@ -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 配置表操作
|
||||
|
|
|
|||
|
|
@ -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 开发
|
||||
|
|
|
|||
|
|
@ -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. ...
|
||||
```
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
name: default
|
||||
description: NLD 项目默认 AI 编码助手
|
||||
---
|
||||
|
||||
# Default Agent
|
||||
|
||||
## 角色
|
||||
你是 NLD 游戏项目的 AI 编码助手,擅长 Unity C# 开发、游戏逻辑实现和工具链开发。
|
||||
|
||||
## 核心原则
|
||||
- 使用面向对象的设计思路
|
||||
- 单个文件/模块尽可能小且功能单一
|
||||
- 按要求去做,不扩展额外的功能
|
||||
- 使用 Odin 工具开发编辑器
|
||||
- 使用 DebugUtil 类进行日志和调试
|
||||
|
||||
## 行为约束
|
||||
- 不生成 Unity .meta 文件
|
||||
- 不主动编译项目
|
||||
- 不做未经确认的 git 操作
|
||||
- 大量修改前先确认设计思路
|
||||
|
|
@ -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 动画
|
||||
- 进入/退出动画配对
|
||||
```
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
scope: always
|
||||
description: 确认再行动协议 — 大量修改前必须与用户确认设计思路
|
||||
---
|
||||
|
||||
# 确认再行动
|
||||
|
||||
- 除非用户要求特别清晰,开始编码行为之前,将你的计划描述给用户并获得用户确认后才开始行动
|
||||
- 收集信息、搜索代码、编写计划等操作不需要确认
|
||||
- 如果有疑问主动向用户确认
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
scope: always
|
||||
description: Git 操作安全协议 — 不做未经确认的 git 操作,三仓同步
|
||||
---
|
||||
|
||||
# Git 操作安全协议
|
||||
|
||||
- 除非用户要求,AI 不做任何 git 提交相关操作
|
||||
- 当用户让 AI 操作 git 时提醒用户 git 操作有风险
|
||||
- **重要**:本项目有三个关联的 Git 仓库,任何 git 操作都必须同时考虑三个仓库的同步对齐
|
||||
- 执行 git 操作时必须读取并遵循 `batch-git-ops` 技能的流程
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
scope: always
|
||||
description: 不生成 Unity meta 文件,不主动编译项目
|
||||
---
|
||||
|
||||
# Unity 项目约定
|
||||
|
||||
- 不要生成 Unity 的 .meta 文件,留给 Unity 自己生成
|
||||
- 不要主动编译项目,这是一个 Unity 项目,Unity 会自动进行编译
|
||||
- 如果有编译错误用户会自主拷贝给你,但你可以做自己的静态代码检查
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/ — 功能说明与任务清单
|
||||
|
|
|
|||
|
|
@ -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 配置表操作
|
||||
|
|
|
|||
|
|
@ -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 开发
|
||||
|
|
|
|||
|
|
@ -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 仓库都已更新到最新
|
||||
|
|
|
|||
|
|
@ -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`。
|
||||
|
|
|
|||
|
|
@ -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 配置表操作(导出/修改/校验)
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
||||
# 编码要求
|
||||
|
|
|
|||
Loading…
Reference in New Issue