ue-project-context

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

UE 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.md
路径下。

Workflow

工作流程

Step 1: Check for Existing Context

步骤1:检查现有上下文

First, check if
.agents/ue-project-context.md
already exists.
If 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:
  1. Auto-draft from codebase (recommended): Scan the project files —
    .uproject
    ,
    Source/*/Build.cs
    ,
    Source/*/*.Target.cs
    ,
    Config/*.ini
    ,
    Plugins/
    — and draft a V1 of the context document. The user reviews, corrects, and fills gaps. Faster than starting from scratch.
  2. 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
是否已存在。
若已存在:
  • 读取文档并总结已记录的内容
  • 询问用户想要更新哪些章节
  • 仅收集这些章节所需的信息
若不存在,提供两种选项:
  1. 从代码库自动生成草稿(推荐):扫描项目文件——
    .uproject
    Source/*/Build.cs
    Source/*/*.Target.cs
    Config/*.ini
    Plugins/
    ——并生成上下文文档的V1版本。用户可进行审阅、修正并补充缺失内容。相比从零开始,此方式更高效。
  2. 交互式问卷:逐一引导用户完成每个章节的信息填写。
大多数用户偏好选项1。生成自动草稿后,询问用户:"哪些内容需要修正?还有哪些信息缺失?"

Step 2: Gather Information

步骤2:收集信息

If Auto-Drafting

若选择自动生成草稿

Scan these files and populate each section:
.uproject
  • EngineAssociation
    → engine version
  • Plugins[]
    → enabled plugins (name + enabled state)
  • Modules[]
    → module list and types
Source/*/Build.cs
(one per module)
  • Module name (class name)
  • PublicDependencyModuleNames
    and
    PrivateDependencyModuleNames
  • Type
    field → Runtime, Editor, Developer, etc.
  • Any
    ThirdParty
    include/library paths
Source/*/*.Target.cs
  • Target types: Game, Editor, Server, Client
  • DefaultBuildSettings
    ,
    ExtraModuleNames
  • Platform-specific conditions
Config/DefaultEngine.ini
  • ActiveGameNameRedirect
    ,
    GameDefaultMap
    ,
    GlobalDefaultGameMode
  • 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
(每个模块对应一个文件)
  • 模块名称(类名)
  • PublicDependencyModuleNames
    PrivateDependencyModuleNames
  • Type
    字段 → Runtime、Editor、Developer等
  • 任何
    ThirdParty
    包含/库路径
Source/*/*.Target.cs
  • 目标类型:Game、Editor、Server、Client
  • DefaultBuildSettings
    ExtraModuleNames
  • 平台特定条件
Config/DefaultEngine.ini
  • ActiveGameNameRedirect
    GameDefaultMap
    GlobalDefaultGameMode
  • 任何自定义子系统或插件设置
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:
  1. Briefly explain what you're capturing and why it matters
  2. Ask the relevant questions
  3. Confirm accuracy
  4. Move to the next section

逐一引导用户完成以下每个章节的填写。不要一次性抛出所有问题。
对于每个章节:
  1. 简要说明需要收集的内容及其重要性
  2. 提出相关问题
  3. 确认信息的准确性
  4. 进入下一章节

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
    Plugins/
    directory?
  • 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
    #pragma once
    or traditional header guards?
  • What
    DEFINE_LOG_CATEGORY
    names does the project use most?
  • What is your preferred assertion style:
    check()
    ,
    ensure()
    ,
    checkf()
    , or
    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
.agents/ue-project-context.md
with this structure:
markdown
undefined
收集完信息后,按照以下结构创建
.agents/ue-project-context.md
markdown
undefined

UE 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]
ModuleTypeNotes
[Name]RuntimeCore gameplay
[Name]EditorCustom editor tools
[Name]DeveloperShared utilities
Key dependencies per module:
  • [ModuleName]: PublicDeps: [list]; PrivateDeps: [list]
Primary game module: [ModuleName]
ModuleTypeNotes
[Name]RuntimeCore gameplay
[Name]EditorCustom editor tools
[Name]DeveloperShared 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:
#pragma once
Log categories in use:
  • LOG_[CategoryName]
    — [scope] Assertion style: [check / ensure / verify — preferred and rationale] Header organization: [Public/Private folders per module / flat] Additional rules:
  • [Rule 1]
  • [Rule 2]
Naming prefixes: Standard UE (F/U/A/E/I) [+ any exceptions] Header style:
#pragma once
Log categories in use:
  • LOG_[CategoryName]
    — [scope] Assertion style: [check / ensure / verify — preferred and rationale] Header organization: [Public/Private folders per module / flat] Additional rules:
  • [Rule 1]
  • [Rule 2]

Subsystems in Use

Subsystems in Use

Gameplay framework:
  • GameMode:
    [ClassName]
  • GameState:
    [ClassName]
  • PlayerController:
    [ClassName]
  • Pawn / Character:
    [ClassName]
Subsystems:
ClassTypeResponsibility
[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:
ClassTypeResponsibility
[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:
  • [MACRO_NAME]
    — [purpose] Third-party libraries:
  • [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:
  • [MACRO_NAME]
    — [purpose] Third-party libraries:
  • [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
    /ue-project-context
    anytime to update it as your project evolves."

  • 展示完成的文档
  • 询问用户在保存前是否需要调整任何内容
  • 保存至
    .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:
  • ue-cpp-foundations
    — uses module names and coding conventions
  • ue-module-build-system
    — uses module structure and dependencies
  • ue-gameplay-abilities
    — uses GAS setup and attribute sets
  • ue-gameplay-framework
    — uses GameMode, GameState, and PlayerController classes
  • ue-actor-component-architecture
    — uses module structure and subsystem list
  • ue-input-system
    — uses Enhanced Input plugin status and PlayerController class
  • ue-ui-umg-slate
    — uses CommonUI plugin status and module structure
  • ue-networking-replication
    — uses build targets (Server/Client) and GameState class
  • ue-testing-debugging
    — uses log categories and module structure
  • ue-editor-tools
    — uses Editor module names and plugin list
依赖此上下文的其他UE技能:
  • ue-cpp-foundations
    — 使用模块名称和编码规范
  • ue-module-build-system
    — 使用模块结构和依赖关系
  • ue-gameplay-abilities
    — 使用GAS设置和attribute sets
  • ue-gameplay-framework
    — 使用GameMode、GameState和PlayerController类
  • ue-actor-component-architecture
    — 使用模块结构和子系统列表
  • ue-input-system
    — 使用Enhanced Input插件状态和PlayerController类
  • ue-ui-umg-slate
    — 使用CommonUI插件状态和模块结构
  • ue-networking-replication
    — 使用构建目标(Server/Client)和GameState类
  • ue-testing-debugging
    — 使用日志类别和模块结构
  • ue-editor-tools
    — 使用Editor模块名称和插件列表