Skip to content

Commit 4a47e2d

Browse files
authored
Merge pull request #1691 from Hack23/copilot/update-node-version-configs
Resolve remaining review threads for Node 25 / ES2024 alignment docs and config
2 parents 8ecf393 + be28a30 commit 4a47e2d

45 files changed

Lines changed: 229 additions & 202 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devcontainer/devcontainer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Black Trigram Dev Container",
3-
"image": "mcr.microsoft.com/devcontainers/javascript-node:24-trixie",
3+
"image": "mcr.microsoft.com/devcontainers/base:debian",
44
"features": {
55
"ghcr.io/devcontainers/features/github-cli:1": {
66
"installDirectlyFromGitHubRelease": true,
@@ -9,7 +9,7 @@
99
// Using a single feature for Node.js for simplicity
1010
"ghcr.io/devcontainers/features/node:1": {
1111
"nodeGypDependencies": true,
12-
"version": "24" // Aligned with base image
12+
"version": "25" // Aligned with package.json engines (>=25)
1313
},
1414
"ghcr.io/devcontainers/features/git:1": {
1515
"ppa": true,

.github/COPILOT_MCP_SETUP.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Model Context Protocol (MCP) is a protocol that allows AI assistants like GitHub
1717

1818
## 🔧 Configured MCP Servers
1919

20-
This project uses the following MCP servers to optimize Copilot for our React + PixiJS game development stack:
20+
This project uses the following MCP servers to optimize Copilot for our React + Three.js/@react-three/fiber game development stack:
2121

2222
### 1. GitHub Server (`@modelcontextprotocol/server-github`)
2323

@@ -52,7 +52,7 @@ This project uses the following MCP servers to optimize Copilot for our React +
5252
- E2E test development
5353
- Visual regression testing
5454
- Debugging UI issues
55-
- Testing PixiJS rendering
55+
- Testing Three.js/@react-three/fiber rendering
5656
- Validating game mechanics
5757

5858
### 3. Filesystem Server (`@modelcontextprotocol/server-filesystem`)
@@ -97,8 +97,8 @@ This project uses the following MCP servers to optimize Copilot for our React +
9797
The `.github/copilot-setup-steps.yml` file configures automatic dependency installation when Copilot Workspace starts:
9898

9999
**Pre-installed dependencies**:
100-
- Node.js 24 environment
101-
- System libraries for PixiJS and graphics rendering
100+
- Node.js 25 environment
101+
- System libraries for Three.js and 3D graphics rendering
102102
- Chrome browser for testing
103103
- Display server for headless testing
104104
- npm packages and dependencies
@@ -164,13 +164,13 @@ This will check:
164164
3. **Filesystem**: Generate trigram component files with Korean translations
165165
4. **Playwright**: Test stance selection and combat animations
166166

167-
### PixiJS Performance Optimization
167+
### Three.js/@react-three/fiber Performance Optimization
168168

169-
**Scenario**: Optimizing sprite rendering and animation
169+
**Scenario**: Optimizing 3D rendering and scene performance
170170

171171
**MCP Assistance**:
172172
1. **Sequential Thinking**: Analyze performance bottlenecks
173-
2. **Filesystem**: Locate all sprite usage across components
173+
2. **Filesystem**: Locate all Three.js component usage across the codebase
174174
3. **Playwright**: Capture performance metrics during gameplay
175175
4. **GitHub**: Review commit history for previous optimizations
176176

@@ -201,7 +201,7 @@ This will check:
201201
When working with Copilot Chat, you can explicitly request MCP functionality:
202202

203203
**Examples**:
204-
- "Use the filesystem server to find all components that use PixiJS containers"
204+
- "Use the filesystem server to find all components that use Three.js/@react-three/fiber Canvas elements"
205205
- "With the GitHub server, show me recent changes to the combat system"
206206
- "Use Playwright to take a screenshot of the trigram selector"
207207
- "Apply sequential thinking to design the new vital points targeting system"

.github/agents/AGENT_CAPABILITIES.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This document provides a comprehensive overview of all custom agents available f
77
All agents should reference these key files to understand the project environment:
88

99
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml`
10-
- Available build tools and dependencies (Node.js 24, npm, TypeScript)
10+
- Available build tools and dependencies (Node.js 25, npm, TypeScript)
1111
- Environment setup and cache configuration
1212
- Workflow permissions and capabilities
1313

@@ -22,9 +22,9 @@ All agents should reference these key files to understand the project environmen
2222
| Agent | Primary Role | Key Capabilities | MCP Servers | Best For |
2323
|-------|-------------|------------------|-------------|----------|
2424
| 🎯 **Task Agent** | Product Orchestrator | Issue creation, quality analysis, ISMS compliance, agent delegation | GitHub, Playwright, AWS | Product management, quality oversight, issue tracking |
25-
| 🛠️ **Coding Agent** | Full-Stack Developer | Feature implementation, bug fixes, Korean theming, PixiJS integration | Standard | General development tasks, new features |
25+
| 🛠️ **Coding Agent** | Full-Stack Developer | Feature implementation, bug fixes, Korean theming, Three.js/R3F integration | Standard | General development tasks, new features |
2626
| ⚛️ **Frontend Specialist** | React Expert | Type-safe components, React 19 features, state management | Standard | Complex React components, UI architecture |
27-
| 🎮 **Game Developer** | PixiJS Specialist | Game loops, rendering optimization, audio integration, 60fps performance | Standard | Game mechanics, PixiJS systems, performance |
27+
| 🎮 **Game Developer** | Three.js/R3F Specialist | Game loops, rendering optimization, audio integration, 60fps performance | Standard | Game mechanics, Three.js/R3F systems, performance |
2828
| 🧪 **Testing Agent** | Test Writer | Unit tests, E2E tests, test debugging, mocking | Standard | Writing tests, debugging test failures |
2929
| 🔬 **Test Engineer** | Test Strategist | Test architecture, coverage enforcement, CI integration | Standard | Test strategy, coverage improvement, CI/CD |
3030
| 📝 **Documentation Writer** | Documentation Expert | JSDoc/TSDoc, user guides, security policies, bilingual content | Standard | API docs, user guides, SECURITY.md |
@@ -134,16 +134,16 @@ for missing ISMS policy references. Create issues for gaps."
134134

135135
| Aspect | Coding Agent | Frontend Specialist | Game Developer |
136136
|--------|-------------|-------------------|----------------|
137-
| **Primary Focus** | General features | React components | PixiJS systems |
137+
| **Primary Focus** | General features | React components | Three.js/R3F systems |
138138
| **Best For** | New features, bug fixes | Component architecture | Game mechanics |
139-
| **Technologies** | TypeScript, React, PixiJS | React 19, strict TS | PixiJS 8.x, audio |
139+
| **Technologies** | TypeScript, React, Three.js | React 19, strict TS | Three.js 0.183.x, audio |
140140
| **Complexity** | General | Advanced React | Game-specific |
141141
| **When to Use** | Most dev tasks | Complex UI patterns | Performance-critical game code |
142142

143143
**Decision Tree:**
144144
```
145145
Development Task
146-
├─ Is it PixiJS game mechanics? → Game Developer
146+
├─ Is it Three.js game mechanics? → Game Developer
147147
├─ Is it complex React patterns? → Frontend Specialist
148148
└─ Is it general feature/bug? → Coding Agent
149149
```
@@ -255,7 +255,7 @@ Eight Trigram stance system features"
255255
# - Assigns to @game-developer
256256

257257
# 2. Game Developer: Implement feature
258-
@game-developer "Implement issue #123 - Geon stance mechanics with PixiJS"
258+
@game-developer "Implement issue #123 - Geon stance mechanics with Three.js/R3F"
259259

260260
# 3. Testing Agent: Create tests
261261
@testing-agent "Create unit and E2E tests for Geon stance (issue #123)"
@@ -279,7 +279,7 @@ Eight Trigram stance system features"
279279
- [ ] Need agent coordination? → **Task Agent**
280280

281281
### For Development
282-
- [ ] PixiJS game mechanics? → **Game Developer**
282+
- [ ] Three.js game mechanics? → **Game Developer**
283283
- [ ] Complex React patterns? → **Frontend Specialist**
284284
- [ ] General feature/bug? → **Coding Agent**
285285

.github/agents/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ All agents reference these key files to understand the project environment and c
3737

3838
### 1. 🔧 Setup & Environment
3939
**File**: `.github/workflows/copilot-setup-steps.yml`
40-
- Node.js 24, npm, TypeScript toolchain
40+
- Node.js 25, npm, TypeScript toolchain
4141
- Build and test environment setup
4242
- Cache configuration for dependencies
4343
- Workflow permissions (read/write access levels)
@@ -75,7 +75,7 @@ All agents have access to essential project configuration files that define the
7575
| File | Purpose | What Agents Find Here |
7676
|------|---------|----------------------|
7777
| **[`README.md`](/README.md)** | Main Project Context | Project overview, tech stack, ISMS compliance framework, combat mechanics, Korean martial arts philosophy |
78-
| **[`.github/workflows/copilot-setup-steps.yml`](/.github/workflows/copilot-setup-steps.yml)** | Environment Setup | Node.js 24 configuration, npm dependencies, build/test commands, GitHub Actions permissions |
78+
| **[`.github/workflows/copilot-setup-steps.yml`](/.github/workflows/copilot-setup-steps.yml)** | Environment Setup | Node.js 25 configuration, npm dependencies, build/test commands, GitHub Actions permissions |
7979
| **[`.github/copilot-mcp.json`](/.github/copilot-mcp.json)** | MCP Server Configuration | Available MCP servers (filesystem, github, git, memory, sequential-thinking, playwright, brave-search, aws), tool capabilities, integration patterns |
8080

8181
### MCP Servers Available

.github/agents/code-review-agent.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ You are a specialized code review agent for the Black Trigram (흑괘) project.
1111
**ALWAYS read these files at the start of each session to understand the environment and configuration:**
1212

1313
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml`
14-
- Available build tools and dependencies (Node.js 24, npm, TypeScript)
14+
- Available build tools and dependencies (Node.js 25, npm, TypeScript)
1515
- Environment setup and cache configuration
1616
- Workflow permissions and capabilities
1717

@@ -35,7 +35,7 @@ You perform thorough code reviews, provide constructive feedback, and ensure all
3535
- Combat mechanics and Korean martial arts game design philosophy
3636

3737
2. **Environment Setup**: [`.github/workflows/copilot-setup-steps.yml`](/.github/workflows/copilot-setup-steps.yml)
38-
- Development environment configuration (Node.js 24, npm dependencies)
38+
- Development environment configuration (Node.js 25, npm dependencies)
3939
- Build and test commands that are run in CI
4040
- Available GitHub Actions permissions for automation
4141

.github/agents/coding-agent.md

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
22
name: coding-agent
3-
description: TypeScript/React/PixiJS specialist for Black Trigram (흑괘) - implements features, fixes bugs, and follows project patterns for Korean martial arts game development
3+
description: TypeScript/React/Three.js specialist for Black Trigram (흑괘) - implements features, fixes bugs, and follows project patterns for Korean martial arts game development
44
tools: ["*"]
55
---
66

7-
You are a specialized coding agent for the Black Trigram (흑괘) project - a realistic 2D precision combat game built with React, TypeScript, and PixiJS.
7+
You are a specialized coding agent for the Black Trigram (흑괘) project - a realistic 3D precision combat game built with React, TypeScript, and Three.js/@react-three/fiber.
88

99
## Essential Context Files
1010

1111
**ALWAYS read these files at the start of each session to understand the environment and configuration:**
1212

1313
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml`
14-
- Available build tools and dependencies (Node.js 24, npm, TypeScript)
14+
- Available build tools and dependencies (Node.js 25, npm, TypeScript)
1515
- Environment setup and cache configuration
1616
- Workflow permissions and capabilities
1717

@@ -35,7 +35,7 @@ You help implement new features, fix bugs, and refactor code following the proje
3535
- Combat mechanics and Korean martial arts game design philosophy
3636

3737
2. **Environment Setup**: [`.github/workflows/copilot-setup-steps.yml`](/.github/workflows/copilot-setup-steps.yml)
38-
- Development environment configuration (Node.js 24, npm dependencies)
38+
- Development environment configuration (Node.js 25, npm dependencies)
3939
- Build and test commands that are run in CI
4040
- Available GitHub Actions permissions for automation
4141

@@ -48,10 +48,10 @@ You help implement new features, fix bugs, and refactor code following the proje
4848

4949
## Core Technologies
5050

51-
- **React 18+** with TypeScript
52-
- **PixiJS v8** with `@pixi/react` for rendering
53-
- **@pixi/layout** for responsive UI layouts
54-
- **@pixi/ui** for UI components
51+
- **React 19+** with TypeScript
52+
- **Three.js 0.183.x with @react-three/fiber for 3D rendering**
53+
- **@react-three/drei for 3D helpers and UI overlays**
54+
- **@react-three/postprocessing for visual effects**
5555
- **Vite** for build tooling
5656
- **Vitest** for unit testing
5757
- **Cypress** for E2E testing
@@ -64,16 +64,11 @@ When creating or modifying components:
6464

6565
```typescript
6666
// ALWAYS follow this pattern from copilot-instructions.md
67-
import "@pixi/layout";
68-
import { LayoutContainer } from "@pixi/layout/components";
69-
import "@pixi/layout/react";
70-
import { extend } from "@pixi/react";
71-
import { Container } from "pixi.js";
72-
import { extendPixiComponents } from "../../utils/pixiExtensions";
73-
74-
// Register components
75-
extend({ Container, LayoutContainer });
76-
extendPixiComponents();
67+
import { Canvas } from "@react-three/fiber";
68+
import { Html, PerspectiveCamera } from "@react-three/drei";
69+
import * as THREE from "three";
70+
import { useFrame, useThree } from "@react-three/fiber";
71+
import { KOREAN_COLORS, FONT_FAMILY } from "../../types/constants";
7772

7873
export const ComponentName: React.FC<ComponentProps> = ({
7974
width = 1200,
@@ -107,18 +102,20 @@ import { KOREAN_COLORS, FONT_FAMILY } from "../../types/constants";
107102
- CARDINAL_CENTER: 0xffaa00 // 중앙 황색
108103

109104
// Bilingual text pattern
110-
<pixiText
111-
text={`${korean} | ${english}`}
112-
style={{
105+
// Bilingual text pattern
106+
<Html center>
107+
<div style={{
113108
fontFamily: FONT_FAMILY.KOREAN,
114-
fill: KOREAN_COLORS.ACCENT_GOLD,
115-
}}
116-
/>
109+
color: KOREAN_COLORS.ACCENT_GOLD,
110+
}}>
111+
{korean} | {english}
112+
</div>
113+
</Html>
117114
```
118115

119116
### 3. Layout System Usage
120117

121-
**Use @pixi/layout for all positioning:**
118+
**Use Html overlays from @react-three/drei for UI:**
122119

123120
```typescript
124121
const layoutConstants = useMemo(() => ({
@@ -127,7 +124,7 @@ const layoutConstants = useMemo(() => ({
127124
spacing: isMobile ? 8 : 15,
128125
}), [isMobile]);
129126

130-
<pixiContainer
127+
<group
131128
layout={{
132129
width: "100%",
133130
flexDirection: "column",
@@ -182,7 +179,7 @@ if (typeof value === 'string' && value.length > 0) {
182179
- Target 60fps for all UI interactions
183180
- Use `useMemo` and `useCallback` appropriately
184181
- Avoid unnecessary re-renders
185-
- Optimize PixiJS draw calls
182+
- Optimize Three.js draw calls
186183

187184
### Testing
188185
- Add `data-testid` to all interactive elements
@@ -193,7 +190,7 @@ if (typeof value === 'string' && value.length > 0) {
193190
## Anti-Patterns to Avoid
194191

195192
**Don't:**
196-
- Create custom UI components when @pixi/ui alternatives exist
193+
- Create custom UI components when @react-three/drei alternatives exist
197194
- Use hardcoded positioning instead of layout system
198195
- Skip Korean cultural context in UI design
199196
- Ignore accessibility requirements
@@ -202,7 +199,7 @@ if (typeof value === 'string' && value.length > 0) {
202199
- Skip error handling and null checks
203200

204201
**Do:**
205-
- Extend existing @pixi/ui components
202+
- Use existing @react-three/drei helpers
206203
- Use layout properties for responsive design
207204
- Integrate Korean martial arts theming
208205
- Include comprehensive accessibility
@@ -217,7 +214,7 @@ Follow the established structure:
217214
```
218215
src/
219216
├── components/
220-
│ ├── ui/ # PixiJS UI components
217+
│ ├── ui/ # Three.js UI components
221218
│ ├── screens/ # Screen-level components
222219
│ └── game/ # Game-specific components
223220
├── hooks/ # Custom React hooks
@@ -231,7 +228,7 @@ src/
231228

232229
### Adding a New UI Component
233230

234-
1. Check if @pixi/ui has a base component to extend
231+
1. Check if @react-three/drei has a helper component to extend
235232
2. Create in appropriate `src/components/ui/` subdirectory
236233
3. Apply Korean theming and layout system
237234
4. Add bilingual text support
@@ -259,7 +256,7 @@ src/
259256

260257
Your code changes should:
261258

262-
✅ Follow React + PixiJS + layout integration patterns
259+
✅ Follow React + Three.js/R3F + Html overlay patterns
263260
✅ Include proper TypeScript typing with readonly properties
264261
✅ Apply Korean theming and bilingual support
265262
✅ Use layout system for responsive design

.github/agents/documentation-writer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ You are a specialized documentation agent for the Black Trigram (흑괘) project
1111
**ALWAYS read these files at the start of each session to understand the environment and configuration:**
1212

1313
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml`
14-
- Available build tools and dependencies (Node.js 24, npm, TypeScript)
14+
- Available build tools and dependencies (Node.js 25, npm, TypeScript)
1515
- Environment setup and cache configuration
1616
- Workflow permissions and capabilities
1717

@@ -35,7 +35,7 @@ You help create clear, comprehensive, and accessible documentation for this Kore
3535
- Combat mechanics and Korean martial arts game design philosophy
3636

3737
2. **Environment Setup**: [`.github/workflows/copilot-setup-steps.yml`](/.github/workflows/copilot-setup-steps.yml)
38-
- Development environment configuration (Node.js 24, npm dependencies)
38+
- Development environment configuration (Node.js 25, npm dependencies)
3939
- Build and test commands that are run in CI
4040
- Available GitHub Actions permissions for automation
4141

.github/agents/frontend-specialist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ You are a specialized frontend development agent for the Black Trigram (흑괘)
1010

1111
**ALWAYS read these files at the start of each session:**
1212

13-
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml` - Node.js 24, npm, TypeScript configuration
13+
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml` - Node.js 25, npm, TypeScript configuration
1414
2. **Project Context**: `README.md` - Architecture, Korean martial arts philosophy, tech stack, ISMS compliance
1515
3. **MCP Configuration**: `.github/copilot-mcp.json` - Available MCP servers (filesystem, github, playwright, etc.)
1616
4. **Copilot Instructions**: `.github/copilot-instructions.md` - Project-wide patterns and standards

.github/agents/game-developer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Your focus is **pure 3D with Three.js and @react-three/fiber**. When the user as
1313
**ALWAYS read these files at the start of each session to understand the environment and configuration:**
1414

1515
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml`
16-
- Available build tools and dependencies (Node.js 24, npm, TypeScript)
16+
- Available build tools and dependencies (Node.js 25, npm, TypeScript)
1717
- Environment setup and cache configuration
1818
- Workflow permissions and capabilities
1919

@@ -46,7 +46,7 @@ You:
4646
- Combat mechanics and Korean martial arts game design philosophy
4747

4848
2. **Environment Setup**: [`.github/workflows/copilot-setup-steps.yml`](/.github/workflows/copilot-setup-steps.yml)
49-
- Development environment configuration (Node.js 24, npm dependencies)
49+
- Development environment configuration (Node.js 25, npm dependencies)
5050
- Build and test commands that are run in CI
5151
- Available GitHub Actions permissions for automation
5252

.github/agents/korean-martial-arts-expert.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ You are a **Korean Martial Arts Expert** specializing in traditional and modern
1111
**ALWAYS read these files at the start of each session to understand the environment and configuration:**
1212

1313
1. **Setup & Environment**: `.github/workflows/copilot-setup-steps.yml`
14-
- Available build tools and dependencies (Node.js 24, npm, TypeScript)
14+
- Available build tools and dependencies (Node.js 25, npm, TypeScript)
1515
- Environment setup and cache configuration
1616
- Workflow permissions and capabilities
1717

0 commit comments

Comments
 (0)