ue-project-context
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseUE Project Context
UE 项目上下文
You help UE developers create and maintain a project context document that other UE skills reference. This captures the engine version, module structure, plugin dependencies, coding conventions, and team practices specific to the user's project, so advice is always tailored rather than generic.
The document is stored at .
.agents/ue-project-context.md你可以帮助UE开发者创建和维护供其他UE技能参考的项目上下文文档。该文档会记录用户项目特有的引擎版本、模块结构、插件依赖、编码规范和团队实践,确保给出的建议始终贴合项目需求,而非通用内容。
文档存储在路径下。
.agents/ue-project-context.mdWorkflow
工作流程
Step 1: Check for Existing Context
步骤1:检查现有上下文
First, check if already exists.
.agents/ue-project-context.mdIf it exists:
- Read it and summarize what's captured
- Ask which sections the user wants to update
- Only gather information for those sections
If it doesn't exist, offer two options:
-
Auto-draft from codebase (recommended): Scan the project files —,
.uproject,Source/*/Build.cs,Source/*/*.Target.cs,Config/*.ini— and draft a V1 of the context document. The user reviews, corrects, and fills gaps. Faster than starting from scratch.Plugins/ -
Interactive questionnaire: Walk through each section conversationally, one at a time.
Most users prefer option 1. After presenting the auto-draft, ask: "What needs correcting? What's missing?"
首先,检查是否已存在。
.agents/ue-project-context.md若已存在:
- 读取文档并总结已记录的内容
- 询问用户想要更新哪些章节
- 仅收集这些章节所需的信息
若不存在,提供两种选项:
-
从代码库自动生成草稿(推荐):扫描项目文件——、
.uproject、Source/*/Build.cs、Source/*/*.Target.cs、Config/*.ini——并生成上下文文档的V1版本。用户可进行审阅、修正并补充缺失内容。相比从零开始,此方式更高效。Plugins/ -
交互式问卷:逐一引导用户完成每个章节的信息填写。
大多数用户偏好选项1。生成自动草稿后,询问用户:"哪些内容需要修正?还有哪些信息缺失?"
Step 2: Gather Information
步骤2:收集信息
If Auto-Drafting
若选择自动生成草稿
Scan these files and populate each section:
.uproject- → engine version
EngineAssociation - → enabled plugins (name + enabled state)
Plugins[] - → module list and types
Modules[]
Source/*/Build.cs- Module name (class name)
- and
PublicDependencyModuleNamesPrivateDependencyModuleNames - field → Runtime, Editor, Developer, etc.
Type - Any include/library paths
ThirdParty
Source/*/*.Target.cs- Target types: Game, Editor, Server, Client
- ,
DefaultBuildSettingsExtraModuleNames - Platform-specific conditions
Config/DefaultEngine.ini- ,
ActiveGameNameRedirect,GameDefaultMapGlobalDefaultGameMode - Any custom subsystem or plugin settings
Config/DefaultGame.ini- Project display name, version
Plugins/*/- Custom plugin directories → names and types
After scanning, draft all sections and present the document. Ask what needs correcting or is missing. Iterate until the user confirms it's accurate.
扫描以下文件并填充各个章节:
.uproject- → 引擎版本
EngineAssociation - → 已启用的插件(名称 + 启用状态)
Plugins[] - → 模块列表及类型
Modules[]
Source/*/Build.cs- 模块名称(类名)
- 和
PublicDependencyModuleNamesPrivateDependencyModuleNames - 字段 → Runtime、Editor、Developer等
Type - 任何包含/库路径
ThirdParty
Source/*/*.Target.cs- 目标类型:Game、Editor、Server、Client
- 、
DefaultBuildSettingsExtraModuleNames - 平台特定条件
Config/DefaultEngine.ini- 、
ActiveGameNameRedirect、GameDefaultMapGlobalDefaultGameMode - 任何自定义子系统或插件设置
Config/DefaultGame.ini- 项目显示名称、版本
Plugins/*/- 自定义插件目录 → 名称及类型
扫描完成后,生成所有章节的文档并展示给用户。询问用户哪些内容需要修正或补充,反复迭代直至用户确认内容准确。
If Using Interactive Questionnaire
若选择交互式问卷
Walk through each section below one at a time. Do not dump all questions at once.
For each section:
- Briefly explain what you're capturing and why it matters
- Ask the relevant questions
- Confirm accuracy
- Move to the next section
逐一引导用户完成以下每个章节的填写。不要一次性抛出所有问题。
对于每个章节:
- 简要说明需要收集的内容及其重要性
- 提出相关问题
- 确认信息的准确性
- 进入下一章节
Sections to Capture
需要记录的章节
1. Engine & Project Overview
1. 引擎与项目概述
Discovery questions:
- What is the project name and a one-sentence description of what it is?
- Which Unreal Engine version are you using (e.g., 5.3, 5.4)? Is this a launcher build or a source build?
- What type of project is this: game, simulation, visualization, tool, plugin, or something else?
- What genre or domain (e.g., first-person shooter, strategy, architectural viz, training sim)?
- What are your target platforms (Windows, Mac, Linux, PS5, Xbox, iOS, Android, VR)?
探索性问题:
- 项目名称是什么?请用一句话描述项目内容。
- 你使用的是哪个Unreal Engine版本(例如5.3、5.4)?是启动器版本还是源码版本?
- 这是什么类型的项目:游戏、模拟、可视化、工具、插件还是其他类型?
- 属于什么流派或领域(例如第一人称射击、策略、建筑可视化、训练模拟)?
- 目标平台有哪些(Windows、Mac、Linux、PS5、Xbox、iOS、Android、VR)?
2. Module Structure
2. 模块结构
Discovery questions:
- How many modules does the project have? What are their names?
- Which is the primary game module?
- What type is each module: Runtime, Editor, Developer, or ThirdParty?
- Are any modules shared libraries or standalone plugins?
- Are there any modules under active development vs. stable/locked modules?
探索性问题:
- 项目有多少个模块?它们的名称分别是什么?
- 主游戏模块是哪一个?
- 每个模块的类型是什么:Runtime、Editor、Developer还是ThirdParty?
- 是否有模块是共享库或独立插件?
- 是否有处于活跃开发中的模块,以及稳定/锁定的模块?
3. Plugin Dependencies
3. 插件依赖
Discovery questions:
- Which engine plugins are enabled (e.g., GameplayAbilities, EnhancedInput, CommonUI, Niagara, PCG, MetaSounds, Chaos, OnlineSubsystem)?
- Do you use any Fab/Marketplace plugins? Which ones are critical to gameplay?
- Do you have any custom or in-house plugins in the directory?
Plugins/ - Are any plugins licensed with restrictions the AI should know about?
探索性问题:
- 启用了哪些引擎插件(例如GameplayAbilities、EnhancedInput、CommonUI、Niagara、PCG、MetaSounds、Chaos、OnlineSubsystem)?
- 是否使用Fab/Marketplace插件?哪些对游戏玩法至关重要?
- 目录下是否有自定义或内部插件?
Plugins/ - 是否有插件带有AI需要知晓的许可限制?
4. Coding Conventions
4. 编码规范
Discovery questions:
- Do you follow Epic's standard UE naming prefixes (F, U, A, E, I)? Any exceptions or additions?
- Do you use or traditional header guards?
#pragma once - What names does the project use most?
DEFINE_LOG_CATEGORY - What is your preferred assertion style: ,
check(),ensure(), orcheckf()?verify() - How do you organize headers — separate Public/Private folders per module, or flat?
- Any other code style rules the team enforces (e.g., no raw pointers for UObjects, always use TObjectPtr)?
探索性问题:
- 是否遵循Epic标准的UE命名前缀(F、U、A、E、I)?有任何例外或补充吗?
- 使用还是传统的头文件保护?
#pragma once - 项目最常使用哪些名称?
DEFINE_LOG_CATEGORY - 偏好哪种断言风格:、
check()、ensure()还是checkf()?verify() - 如何组织头文件——每个模块分开使用Public/Private文件夹,还是扁平化结构?
- 团队是否强制执行其他代码风格规则(例如UObjects不使用裸指针,始终使用TObjectPtr)?
5. Subsystems in Use
5. 使用的子系统
Discovery questions:
- Do you have a custom GameMode or GameState? What are the class names?
- What custom PlayerController and Pawn/Character classes exist?
- Which UE subsystem types do you use: ,
UGameInstanceSubsystem,UWorldSubsystem,ULocalPlayerSubsystem?UEngineSubsystem - Do you have custom systems for inventory, dialogue, quest, save, UI management, or similar?
- Are you using the Gameplay Ability System (GAS)? If so, what are your key Ability, Effect, and AttributeSet class names?
探索性问题:
- 是否有自定义GameMode或GameState?它们的类名是什么?
- 存在哪些自定义PlayerController和Pawn/Character类?
- 使用哪些UE子系统类型:、
UGameInstanceSubsystem、UWorldSubsystem、ULocalPlayerSubsystem?UEngineSubsystem - 是否有用于 inventory、dialogue、quest、save、UI管理或类似功能的自定义系统?
- 是否使用Gameplay Ability System(GAS)?如果是,关键的Ability、Effect和AttributeSet类名是什么?
6. Build Configuration
6. 构建配置
Discovery questions:
- Which build targets do you ship: Game, Editor, Server, Client, or a subset?
- Do you define any custom preprocessor macros or build flags?
- Do you integrate any third-party C++ libraries? Which ones and how (binary, source)?
- Are there platform-specific code paths or compilation guards to be aware of?
- Do you use a custom engine fork or any engine modifications?
探索性问题:
- 发布哪些构建目标:Game、Editor、Server、Client,还是其中的一部分?
- 是否定义了任何自定义预处理器宏或构建标志?
- 是否集成了第三方C++库?是哪些库,以及集成方式(二进制、源码)?
- 是否存在需要注意的平台特定代码路径或编译防护?
- 是否使用自定义引擎分支或任何引擎修改?
7. Team Context (Optional)
7. 团队上下文(可选)
Discovery questions:
- How large is the team, and what are the main roles (engineers, designers, artists)?
- What source control system do you use (Perforce, Git, Plastic SCM)?
- Do you have a branching strategy or lock policy for assets?
- Do you have a code review process? What's the bar for approval?
- Are there documentation standards — in-code comments, Confluence, Notion, etc.?
探索性问题:
- 团队规模有多大,主要角色有哪些(工程师、设计师、美术师)?
- 使用什么版本控制系统(Perforce、Git、Plastic SCM)?
- 是否有分支策略或资产锁定政策?
- 是否有代码审查流程?批准的标准是什么?
- 是否有文档标准——代码内注释、Confluence、Notion等?
Step 3: Create the Document
步骤3:创建文档
After gathering information, create with this structure:
.agents/ue-project-context.mdmarkdown
undefined收集完信息后,按照以下结构创建:
.agents/ue-project-context.mdmarkdown
undefinedUE Project Context
UE Project Context
Last updated: [date]
Last updated: [date]
Engine & Project Overview
Engine & Project Overview
Engine version: [e.g., UE 5.4 — Launcher build]
Project name: [name]
Description: [one sentence]
Project type: [game / simulation / visualization / tool]
Genre / domain: [e.g., third-person action RPG]
Target platforms:
- [Platform 1]
- [Platform 2]
Engine version: [e.g., UE 5.4 — Launcher build]
Project name: [name]
Description: [one sentence]
Project type: [game / simulation / visualization / tool]
Genre / domain: [e.g., third-person action RPG]
Target platforms:
- [Platform 1]
- [Platform 2]
Module Structure
Module Structure
Primary game module: [ModuleName]
| Module | Type | Notes |
|---|---|---|
| [Name] | Runtime | Core gameplay |
| [Name] | Editor | Custom editor tools |
| [Name] | Developer | Shared utilities |
Key dependencies per module:
- [ModuleName]: PublicDeps: [list]; PrivateDeps: [list]
Primary game module: [ModuleName]
| Module | Type | Notes |
|---|---|---|
| [Name] | Runtime | Core gameplay |
| [Name] | Editor | Custom editor tools |
| [Name] | Developer | Shared utilities |
Key dependencies per module:
- [ModuleName]: PublicDeps: [list]; PrivateDeps: [list]
Plugin Dependencies
Plugin Dependencies
Engine plugins enabled:
- [PluginName] — [brief purpose]
Marketplace / Fab plugins:
- [PluginName] — [brief purpose]
Custom plugins:
- [PluginName] — [brief purpose]
Engine plugins enabled:
- [PluginName] — [brief purpose]
Marketplace / Fab plugins:
- [PluginName] — [brief purpose]
Custom plugins:
- [PluginName] — [brief purpose]
Coding Conventions
Coding Conventions
Naming prefixes: Standard UE (F/U/A/E/I) [+ any exceptions]
Header style:
Log categories in use:
#pragma once- — [scope] Assertion style: [check / ensure / verify — preferred and rationale] Header organization: [Public/Private folders per module / flat] Additional rules:
LOG_[CategoryName] - [Rule 1]
- [Rule 2]
Naming prefixes: Standard UE (F/U/A/E/I) [+ any exceptions]
Header style:
Log categories in use:
#pragma once- — [scope] Assertion style: [check / ensure / verify — preferred and rationale] Header organization: [Public/Private folders per module / flat] Additional rules:
LOG_[CategoryName] - [Rule 1]
- [Rule 2]
Subsystems in Use
Subsystems in Use
Gameplay framework:
- GameMode:
[ClassName] - GameState:
[ClassName] - PlayerController:
[ClassName] - Pawn / Character:
[ClassName]
Subsystems:
| Class | Type | Responsibility |
|---|---|---|
| [ClassName] | UGameInstanceSubsystem | [purpose] |
| [ClassName] | UWorldSubsystem | [purpose] |
Custom systems:
- [System name]: [brief description and key classes]
GAS usage:
- Abilities: [base class name]
- Attribute Sets: [class names]
- Key gameplay tags: [list or "see Config/DefaultGameplayTags.ini"]
Gameplay framework:
- GameMode:
[ClassName] - GameState:
[ClassName] - PlayerController:
[ClassName] - Pawn / Character:
[ClassName]
Subsystems:
| Class | Type | Responsibility |
|---|---|---|
| [ClassName] | UGameInstanceSubsystem | [purpose] |
| [ClassName] | UWorldSubsystem | [purpose] |
Custom systems:
- [System name]: [brief description and key classes]
GAS usage:
- Abilities: [base class name]
- Attribute Sets: [class names]
- Key gameplay tags: [list or "see Config/DefaultGameplayTags.ini"]
Build Configuration
Build Configuration
Build targets: [Game, Editor, Server, Client — which apply]
Custom macros / build flags:
- — [purpose] Third-party libraries:
[MACRO_NAME] - [LibraryName] — [integration method: binary / source] Platform-specific notes:
- [Platform]: [relevant constraint or code path] Engine modifications: [None / Custom fork at [repo] — [what was changed]]
Build targets: [Game, Editor, Server, Client — which apply]
Custom macros / build flags:
- — [purpose] Third-party libraries:
[MACRO_NAME] - [LibraryName] — [integration method: binary / source] Platform-specific notes:
- [Platform]: [relevant constraint or code path] Engine modifications: [None / Custom fork at [repo] — [what was changed]]
Team Context
Team Context
Team size: [N engineers, N designers, N artists]
Source control: [Perforce / Git / Plastic SCM]
Branching strategy: [description]
Code review: [process and bar]
Documentation standards: [in-code / Confluence / Notion / etc.]
---Team size: [N engineers, N designers, N artists]
Source control: [Perforce / Git / Plastic SCM]
Branching strategy: [description]
Code review: [process and bar]
Documentation standards: [in-code / Confluence / Notion / etc.]
---Step 4: Confirm and Save
步骤4:确认并保存
- Show the completed document
- Ask if anything needs adjustment before saving
- Save to
.agents/ue-project-context.md - Tell the user: "All other UE skills will now reference this context automatically. Run anytime to update it as your project evolves."
/ue-project-context
- 展示完成的文档
- 询问用户在保存前是否需要调整任何内容
- 保存至
.agents/ue-project-context.md - 告知用户:"所有其他UE技能现在将自动参考此上下文。随着项目发展,可随时运行进行更新。"
/ue-project-context
Tips
提示
- Prioritize auto-draft: Even a partial scan saves significant back-and-forth.
- Engine version matters: UE 5.0 vs 5.4 have meaningful API differences — always confirm it.
- Module boundaries are important: Many UE compilation errors trace to incorrect dependency declarations; capture them accurately.
- Ask for class names, not descriptions: "What's your GameMode called?" beats "Do you have a custom GameMode?"
- GAS projects need extra detail: If GAS is in use, capture AttributeSet names and tag conventions — other skills rely on them heavily.
- Skip inapplicable sections: Solo developers without team context don't need Section 7.
- Note what's unknown: It's valid to write "Not yet established" for conventions the team hasn't decided. Don't invent answers.
- 优先选择自动生成草稿:即使是部分扫描也能大幅减少来回沟通的时间。
- 引擎版本至关重要:UE 5.0与5.4之间存在显著的API差异——务必确认版本。
- 模块边界很重要:许多UE编译错误源于依赖声明不正确;请准确记录这些信息。
- 询问类名而非描述:"你的GameMode叫什么名字?"比"你有自定义GameMode吗?"更有效。
- 使用GAS的项目需要额外细节:如果使用GAS,请记录AttributeSet名称和标签约定——其他技能严重依赖这些信息。
- 跳过不适用的章节:没有团队上下文的独立开发者无需填写第7章。
- 记录未知内容:对于团队尚未确定的规范,可以写"尚未确立"。不要编造答案。
Related Skills
相关技能
Other UE skills that depend on this context:
- — uses module names and coding conventions
ue-cpp-foundations - — uses module structure and dependencies
ue-module-build-system - — uses GAS setup and attribute sets
ue-gameplay-abilities - — uses GameMode, GameState, and PlayerController classes
ue-gameplay-framework - — uses module structure and subsystem list
ue-actor-component-architecture - — uses Enhanced Input plugin status and PlayerController class
ue-input-system - — uses CommonUI plugin status and module structure
ue-ui-umg-slate - — uses build targets (Server/Client) and GameState class
ue-networking-replication - — uses log categories and module structure
ue-testing-debugging - — uses Editor module names and plugin list
ue-editor-tools
依赖此上下文的其他UE技能:
- — 使用模块名称和编码规范
ue-cpp-foundations - — 使用模块结构和依赖关系
ue-module-build-system - — 使用GAS设置和attribute sets
ue-gameplay-abilities - — 使用GameMode、GameState和PlayerController类
ue-gameplay-framework - — 使用模块结构和子系统列表
ue-actor-component-architecture - — 使用Enhanced Input插件状态和PlayerController类
ue-input-system - — 使用CommonUI插件状态和模块结构
ue-ui-umg-slate - — 使用构建目标(Server/Client)和GameState类
ue-networking-replication - — 使用日志类别和模块结构
ue-testing-debugging - — 使用Editor模块名称和插件列表
ue-editor-tools