Files
test/agent-skills/README.md
2026-02-24 18:45:24 +07:00

49 lines
2.7 KiB
Markdown

# Agent Skills for Perfect World Unity C++ to C# Conversion
This folder contains comprehensive skills and guidelines for AI agents working on the Perfect World Unity C++ to C# conversion project.
## Skills Index
### Core Conversion Skills
1. **[Naming Conventions](./01-naming-conventions.md)** - Maintain C++ naming exactly (CGfxMoveBase, m_bOneOfCluser, etc.)
2. **[Type Mappings](./02-type-mappings.md)** - C++ to C# type conversions (DWORD→uint, A3DVECTOR3→Vector3, etc.)
3. **[Code Patterns](./03-code-patterns.md)** - Common C++ patterns and their C# equivalents
### Architecture & Understanding
4. **[Architecture Understanding](./04-architecture-understanding.md)** - System structure, flow, and relationships
5. **[Skill GFX System Deep Dive](./05-skill-gfx-deep-dive.md)** - Detailed GFX system architecture
### Quality & Validation
6. **[Testing & Validation](./06-testing-validation.md)** - How to verify conversions are correct
7. **[Common Pitfalls](./07-common-pitfalls.md)** - Mistakes to avoid during conversion
8. **[Best Practices](./08-best-practices.md)** - Recommended approaches and patterns
### Reference
9. **[C++ Source Reference](./09-cpp-source-reference.md)** - Key C++ files and their locations
10. **[Unity C# Reference](./10-unity-csharp-reference.md)** - Key Unity C# files and their locations
11. **[GFX to Particle System](./11-gfx-to-particle-system.md)** - GFX→ParticleSystem conversion, why scale is not needed
12. **[Prefer UniTask Over Task](./12-prefer-unitask-over-task.md)** - Use UniTask for all Unity async operations
## Quick Start
When starting a conversion task:
1. Read [Naming Conventions](./01-naming-conventions.md) - **CRITICAL** - Never change C++ names unnecessarily
2. Check [Type Mappings](./02-type-mappings.md) for type conversions
3. Review [Common Pitfalls](./07-common-pitfalls.md) before coding
4. Use [Testing & Validation](./06-testing-validation.md) to verify your work
5. For async code: Use [UniTask Over Task](./12-prefer-unitask-over-task.md) - Prefer UniTask for Unity async operations
## Priority Rules
1. **Preserve C++ naming** - If C++ has `CGfxMoveBase`, use `CGfxMoveBase` (not `IGfxMovement`)
2. **Match C++ behavior exactly** - Don't "improve" logic unless explicitly requested
3. **Maintain field names** - Even typos like `m_bOneOfCluser` must be preserved
4. **Verify against C++ source** - Always check the actual C++ implementation
## Project Context
- **Source:** `perfect-world-source/` - Original C++ codebase
- **Target:** `perfect-world-unity/Assets/` - Unity C# project
- **Main Plan:** `SKILL_GFX_CONVERSION_PLAN.md` - Overall conversion strategy
- **Quick Guide:** `SKILL_GFX_QUICK_START.md` - Fast implementation guide