UE Project Context
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.
Workflow
Step 1: Check for Existing Context
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:
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.
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?"
Step 2: Gather Information
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.
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
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)?
2. Module Structure
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?
3. Plugin Dependencies
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?
4. Coding Conventions
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)?
5. Subsystems in Use
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?
6. Build Configuration
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?
7. Team Context (Optional)
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.?
Step 3: Create the Document
After gathering information, create .agents/ue-project-context.md with this structure:
# UE Project Context
*Last updated: [date]*
## 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]
## 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]
## Plugin Dependencies
**Engine plugins enabled:**
- [PluginName] — [brief purpose]
**Marketplace / Fab plugins:**
- [PluginName] — [brief purpose]
**Custom plugins:**
- [PluginName] — [brief purpose]
## 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]
## 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"]
## 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]]
## 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.]
Step 4: Confirm and Save
- 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."
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.
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
1---2name: ue-project-context3description: When the user wants to create or update their Unreal Engine project context document. Use when the user says 'project context,' 'set up context,' 'UE context,' 'configure project,' or wants to avoid repeating their project setup across UE development tasks. Creates `.agents/ue-project-context.md` that all other UE skills reference. See related skills footer for skills that depend on this context.4---5
6# UE Project Context
7
8You 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.
9
10The document is stored at `.agents/ue-project-context.md`.
11
12---
13
14## Workflow
15
16### Step 1: Check for Existing Context
17
18First, check if `.agents/ue-project-context.md` already exists.
19
20**If it exists:**
21- Read it and summarize what's captured
22- Ask which sections the user wants to update
23- Only gather information for those sections
24
25**If it doesn't exist, offer two options:**
26
271. **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.
28
292. **Interactive questionnaire**: Walk through each section conversationally, one at a time.
30
31Most users prefer option 1. After presenting the auto-draft, ask: "What needs correcting? What's missing?"
32
33---
34
35### Step 2: Gather Information
36
37#### If Auto-Drafting
38
39Scan these files and populate each section:
40
41**`.uproject`**
42- `EngineAssociation` → engine version
43- `Plugins[]` → enabled plugins (name + enabled state)
44- `Modules[]` → module list and types
45
46**`Source/*/Build.cs`** (one per module)
47- Module name (class name)
48- `PublicDependencyModuleNames` and `PrivateDependencyModuleNames`
49- `Type` field → Runtime, Editor, Developer, etc.
50- Any `ThirdParty` include/library paths
51
52**`Source/*/*.Target.cs`**
53- Target types: Game, Editor, Server, Client
54- `DefaultBuildSettings`, `ExtraModuleNames`
55- Platform-specific conditions
56
57**`Config/DefaultEngine.ini`**
58- `ActiveGameNameRedirect`, `GameDefaultMap`, `GlobalDefaultGameMode`
59- Any custom subsystem or plugin settings
60
61**`Config/DefaultGame.ini`**
62- Project display name, version
63
64**`Plugins/*/`**
65- Custom plugin directories → names and types
66
67After scanning, draft all sections and present the document. Ask what needs correcting or is missing. Iterate until the user confirms it's accurate.
68
69#### If Using Interactive Questionnaire
70
71Walk through each section below one at a time. Do not dump all questions at once.
72
73For each section:
741. Briefly explain what you're capturing and why it matters
752. Ask the relevant questions
763. Confirm accuracy
774. Move to the next section
78
79---
80
81## Sections to Capture
82
83### 1. Engine & Project Overview
84
85Discovery questions:
86- What is the project name and a one-sentence description of what it is?
87- Which Unreal Engine version are you using (e.g., 5.3, 5.4)? Is this a launcher build or a source build?
88- What type of project is this: game, simulation, visualization, tool, plugin, or something else?
89- What genre or domain (e.g., first-person shooter, strategy, architectural viz, training sim)?
90- What are your target platforms (Windows, Mac, Linux, PS5, Xbox, iOS, Android, VR)?
91
92### 2. Module Structure
93
94Discovery questions:
95- How many modules does the project have? What are their names?
96- Which is the primary game module?
97- What type is each module: Runtime, Editor, Developer, or ThirdParty?
98- Are any modules shared libraries or standalone plugins?
99- Are there any modules under active development vs. stable/locked modules?
100
101### 3. Plugin Dependencies
102
103Discovery questions:
104- Which engine plugins are enabled (e.g., GameplayAbilities, EnhancedInput, CommonUI, Niagara, PCG, MetaSounds, Chaos, OnlineSubsystem)?
105- Do you use any Fab/Marketplace plugins? Which ones are critical to gameplay?
106- Do you have any custom or in-house plugins in the `Plugins/` directory?
107- Are any plugins licensed with restrictions the AI should know about?
108
109### 4. Coding Conventions
110
111Discovery questions:
112- Do you follow Epic's standard UE naming prefixes (F, U, A, E, I)? Any exceptions or additions?
113- Do you use `#pragma once` or traditional header guards?
114- What `DEFINE_LOG_CATEGORY` names does the project use most?
115- What is your preferred assertion style: `check()`, `ensure()`, `checkf()`, or `verify()`?
116- How do you organize headers — separate Public/Private folders per module, or flat?
117- Any other code style rules the team enforces (e.g., no raw pointers for UObjects, always use TObjectPtr)?
118
119### 5. Subsystems in Use
120
121Discovery questions:
122- Do you have a custom GameMode or GameState? What are the class names?
123- What custom PlayerController and Pawn/Character classes exist?
124- Which UE subsystem types do you use: `UGameInstanceSubsystem`, `UWorldSubsystem`, `ULocalPlayerSubsystem`, `UEngineSubsystem`?
125- Do you have custom systems for inventory, dialogue, quest, save, UI management, or similar?
126- Are you using the Gameplay Ability System (GAS)? If so, what are your key Ability, Effect, and AttributeSet class names?
127
128### 6. Build Configuration
129
130Discovery questions:
131- Which build targets do you ship: Game, Editor, Server, Client, or a subset?
132- Do you define any custom preprocessor macros or build flags?
133- Do you integrate any third-party C++ libraries? Which ones and how (binary, source)?
134- Are there platform-specific code paths or compilation guards to be aware of?
135- Do you use a custom engine fork or any engine modifications?
136
137### 7. Team Context (Optional)
138
139Discovery questions:
140- How large is the team, and what are the main roles (engineers, designers, artists)?
141- What source control system do you use (Perforce, Git, Plastic SCM)?
142- Do you have a branching strategy or lock policy for assets?
143- Do you have a code review process? What's the bar for approval?
144- Are there documentation standards — in-code comments, Confluence, Notion, etc.?
145
146---
147
148## Step 3: Create the Document
149
150After gathering information, create `.agents/ue-project-context.md` with this structure:
151
152```markdown
153# UE Project Context
154
155*Last updated: [date]*
156
157## Engine & Project Overview
158**Engine version:** [e.g., UE 5.4 — Launcher build]
159**Project name:** [name]
160**Description:** [one sentence]
161**Project type:** [game / simulation / visualization / tool]
162**Genre / domain:** [e.g., third-person action RPG]
163**Target platforms:**
164- [Platform 1]
165- [Platform 2]
166
167## Module Structure
168**Primary game module:** [ModuleName]
169
170| Module | Type | Notes |
171|--------|------|-------|
172| [Name] | Runtime | Core gameplay |
173| [Name] | Editor | Custom editor tools |
174| [Name] | Developer | Shared utilities |
175
176**Key dependencies per module:**
177- **[ModuleName]**: PublicDeps: [list]; PrivateDeps: [list]
178
179## Plugin Dependencies
180**Engine plugins enabled:**
181- [PluginName] — [brief purpose]
182
183**Marketplace / Fab plugins:**
184- [PluginName] — [brief purpose]
185
186**Custom plugins:**
187- [PluginName] — [brief purpose]
188
189## Coding Conventions
190**Naming prefixes:** Standard UE (F/U/A/E/I) [+ any exceptions]
191**Header style:** `#pragma once`
192**Log categories in use:**
193- `LOG_[CategoryName]` — [scope]
194**Assertion style:** [check / ensure / verify — preferred and rationale]
195**Header organization:** [Public/Private folders per module / flat]
196**Additional rules:**
197- [Rule 1]
198- [Rule 2]
199
200## Subsystems in Use
201**Gameplay framework:**
202- GameMode: `[ClassName]`
203- GameState: `[ClassName]`
204- PlayerController: `[ClassName]`
205- Pawn / Character: `[ClassName]`
206
207**Subsystems:**
208| Class | Type | Responsibility |
209|-------|------|----------------|
210| [ClassName] | UGameInstanceSubsystem | [purpose] |
211| [ClassName] | UWorldSubsystem | [purpose] |
212
213**Custom systems:**
214- [System name]: [brief description and key classes]
215
216**GAS usage:**
217- Abilities: [base class name]
218- Attribute Sets: [class names]
219- Key gameplay tags: [list or "see Config/DefaultGameplayTags.ini"]
220
221## Build Configuration
222**Build targets:** [Game, Editor, Server, Client — which apply]
223**Custom macros / build flags:**
224- `[MACRO_NAME]` — [purpose]
225**Third-party libraries:**
226- [LibraryName] — [integration method: binary / source]
227**Platform-specific notes:**
228- [Platform]: [relevant constraint or code path]
229**Engine modifications:** [None / Custom fork at [repo] — [what was changed]]
230
231## Team Context
232**Team size:** [N engineers, N designers, N artists]
233**Source control:** [Perforce / Git / Plastic SCM]
234**Branching strategy:** [description]
235**Code review:** [process and bar]
236**Documentation standards:** [in-code / Confluence / Notion / etc.]
237```
238
239---
240
241## Step 4: Confirm and Save
242
243- Show the completed document
244- Ask if anything needs adjustment before saving
245- Save to `.agents/ue-project-context.md`
246- 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."
247
248---
249
250## Tips
251
252- **Prioritize auto-draft**: Even a partial scan saves significant back-and-forth.
253- **Engine version matters**: UE 5.0 vs 5.4 have meaningful API differences — always confirm it.
254- **Module boundaries are important**: Many UE compilation errors trace to incorrect dependency declarations; capture them accurately.
255- **Ask for class names, not descriptions**: "What's your GameMode called?" beats "Do you have a custom GameMode?"
256- **GAS projects need extra detail**: If GAS is in use, capture AttributeSet names and tag conventions — other skills rely on them heavily.
257- **Skip inapplicable sections**: Solo developers without team context don't need Section 7.
258- **Note what's unknown**: It's valid to write "Not yet established" for conventions the team hasn't decided. Don't invent answers.
259
260---
261
262## Related Skills
263
264Other UE skills that depend on this context:
265- `ue-cpp-foundations` — uses module names and coding conventions
266- `ue-module-build-system` — uses module structure and dependencies
267- `ue-gameplay-abilities` — uses GAS setup and attribute sets
268- `ue-gameplay-framework` — uses GameMode, GameState, and PlayerController classes
269- `ue-actor-component-architecture` — uses module structure and subsystem list
270- `ue-input-system` — uses Enhanced Input plugin status and PlayerController class
271- `ue-ui-umg-slate` — uses CommonUI plugin status and module structure
272- `ue-networking-replication` — uses build targets (Server/Client) and GameState class
273- `ue-testing-debugging` — uses log categories and module structure
274- `ue-editor-tools` — uses Editor module names and plugin list