Two files, one repository
SirTidez/Schedule-I-Developer-Environment-Utility ships 2 formats across 2 indexed files. The question worth asking is whether the second one says anything the first does not.
CompareAGENTS.md ↔ CLAUDE.md
| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 9 | 9 | 0% |
| Commands | 0 | 7 | 4 | 0% |
| Section tags | 3 | 5 | 3 | 27% |
What each file covers
Sections
0 shared · 9 only in A · 9 only in B- − Repository Guidelines
- − Project Structure & Module Organization
- − Build, Test, and Development Commands
- − Coding Style & Naming Conventions
- − Testing Guidelines
- − Commit & Pull Request Guidelines
- − Security & Configuration Tips
- − Documentation & Comments
- − External Commands & Tools
- + CLAUDE.md
- + Build and Development Commands
- + Architecture Overview
- + Core Architecture Patterns
- + Key Components
- + Application State Management
- + UI Design Principles
- + Dependencies
- + Development Notes
Commands
0 shared · 7 only in A · 4 only in B- − dotnet restore
- − dotnet build "Schedule I Developer Environment Utility.sln"
- − dotnet run --project "Schedule I Developer Environment Utility.csproj"
- − dotnet publish -c Release -p:PublishProfile=Properties/PublishProfiles/win-x64.pubxml
- − dotnet publish -c Release -r win-x64 --self-contained
- − dotnet test
- − dotnet
- + npm run build
- + npm run dev
- + npm start
- + npm run package
Section tags
3 shared · 5 only in A · 3 only in B- − test
- − git-pr
- − security
- − do-not
- − docs
- + dependencies
- + ui
- + agent-behaviour
- build
- code-style
- architecture
Line diff
SirTidez/Schedule-I-Developer-Environment-Utility · AGENTS.md
@@ −1 @@
1# Repository Guidelines
2
3This guide helps contributors work effectively in the Schedule I Developer Environment Utility repository (WinUI3 + MVVM on .NET 8).
4
5## Project Structure & Module Organization
6- `App.xaml`, `MainWindow.xaml`: Application entry/view. Code-behind in `*.xaml.cs`.
7- `ViewModels/`: MVVM logic (e.g., `MainWindowViewModel`).
8- `Services/`: Core services (`SteamService`, `ConfigurationService`, `FileLoggingService`).
9- `Models/`: Data contracts (`DevEnvironmentConfig`, `SteamGameInfo`, `BranchInfo`).
10- `Assets/`: App icons and splash assets used by the package manifest.
11- `Properties/PublishProfiles/`: Packaging profiles (`win-x86`, `win-x64`, `win-arm64`).
12- `memories/`: Change logs and significant updates.
13 - Managed path layout: `<ManagedEnv>/branches/<branch>`, `logs/`, `temp/`.
14 - Config path: `%USERPROFILE%/AppData/LocalLow/TVGS/Development Environment Manager/config.json`.
15
16## Build, Test, and Development Commands
17- Restore: `dotnet restore`
18- Build solution: `dotnet build "Schedule I Developer Environment Utility.sln"`
19- Run (dev): `dotnet run --project "Schedule I Developer Environment Utility.csproj"`
20- Publish (profile): `dotnet publish -c Release -p:PublishProfile=Properties/PublishProfiles/win-x64.pubxml`
21- Publish (self-contained): `dotnet publish -c Release -r win-x64 --self-contained`
22
23## Coding Style & Naming Conventions
24- C#/.NET: 4-space indent; Allman braces; nullable aware.
25- Names: PascalCase for types/methods; camelCase for locals/fields; `I`-prefix for interfaces; async methods end with `Async`.
26- MVVM: `*ViewModel` for view-models; avoid code-behind logic beyond UI wiring. Prefer DI via `App.xaml.cs` for services and `ILogger<T>`.
27- XAML: Bind via properties/commands; keep UI strings in XAML resources when practical.
28 - Theme: app-wide dark mode (`RequestedTheme="Dark"`), title bar styled via `ThemeService`.
29
30## Testing Guidelines
31- No test project currently. Prefer xUnit when adding tests.
32- Layout: `Tests/ProjectName.Tests/` with mirrors of `Services/` and `Models/` units.
33- Focus: Service logic and Steam/file operations; UI by manual verification.
34- Run tests: `dotnet test`
35
36## Commit & Pull Request Guidelines
37- Commits: Conventional Commits (e.g., `feat(services): add branch parsing`), imperative mood, scoped when helpful.
38- PRs: clear description, linked issues, screenshots/GIFs for UI changes, reproduction/validation steps, and update docs (`CLAUDE.md`, `AGENTS.md`) if architecture or behavior changes.
39
40## Security & Configuration Tips
41- Do not commit secrets or local AppData artifacts. Use environment variables or user secrets for tokens/keys.
42- File ops should be cancellable and show progress; avoid logging PII. Steam App ID is handled in `SteamService`.
43 - Branch build IDs are stored per-branch in config; appmanifest copied to each branch folder on copy for drift checks.
44
45## Documentation & Comments
46- Use XML comments for public APIs; summarize purpose, params, returns, exceptions.
47- Document complex logic inline with comments.
48- After significant changes, update AGENTS.MD and CLAUDE.md as needed.
49- Create a detailed and compressed new entry in memory.md for significant changes.
50
51## External Commands & Tools
52- Use `dotnet` CLI for builds, tests, publishing.
53- Visual Studio or VS Code for development.
54
SirTidez/Schedule-I-Developer-Environment-Utility · CLAUDE.md
@@ +1 @@
1# CLAUDE.md
2
3This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
5## Build and Development Commands
6
7**Build the application:**
8```bash
9npm run build
10```
11
12**Run the application in development:**
13```bash
14npm run dev
15```
16
17**Run the application (production):**
18```bash
19npm start
20```
21
22**Package the application:**
23```bash
24npm run package
25```
26
27## Architecture Overview
28
29This is an Electron application built with TypeScript and React that manages development environments for the Steam game "Schedule I". The application provides automated branch management, DepotDownloader integration, and comprehensive Steam library detection.
30
31### Core Architecture Patterns
32
33**Electron Multi-Process Architecture**: The application uses Electron's standard architecture:
34- **Main Process**: Node.js backend handling system operations and Steam integration
35- **Renderer Process**: React frontend with secure IPC communication
36- **Preload Script**: Secure bridge between main and renderer processes
37
38**IPC Communication**: All communication between processes uses Electron's IPC system with type-safe interfaces defined in the preload script.
39
40### Key Components
41
42**Main Process Services** (`src/main/services/`):
43- `ConfigService`: Manages persistent configuration storage in AppData with DepotDownloader settings
44- `LoggingService`: File-based logging implementation
45- `CredentialService`: Secure Steam credential storage and encryption
46- `UpdateService`: Application update checking and management
47
48**IPC Handlers** (`src/main/ipc/`):
49- `steamHandlers.ts`: Steam library detection, manifest parsing, and branch detection
50- `depotdownloaderHandlers.ts`: DepotDownloader integration replacing legacy SteamCMD
51- `configHandlers.ts`: Configuration management operations
52- `fileHandlers.ts`: File operations with progress tracking
53- `steamLoginHandlers.ts`: Steam authentication and credential management
54
55**React Components** (`src/renderer/components/`):
56- `SetupWizard/`: Multi-step setup process with DepotDownloader configuration
57- `ManagedEnvironment/`: Main interface for environment management
58- `Settings/`: Configuration and preferences management
59- Progress dialogs and confirmation components
60
61**Shared Types** (`src/shared/types.ts`):
62- `DevEnvironmentConfig`: Central configuration interface with DepotDownloader integration
63- Steam-related interfaces and branch management types
64
65### Application State Management
66
67**Configuration Storage**: Uses JSON serialization to AppData (`%LOCALAPPDATA%\TVGS\Schedule I\Developer Env\config\`)
68
69**Branch Management**: Supports four branch types: main-branch, beta-branch, alternate-branch, alternate-beta-branch
70
71**DepotDownloader Integration Features**:
72- Modern Steam depot downloading with simplified command syntax
73- Automatic Steam Guard support with QR codes
74- Parallel downloads with configurable thread counts
75- Better error handling and progress reporting compared to legacy SteamCMD
76- Installation via Windows Package Manager (winget) or manual download
77- Manifest-based build ID extraction for branch verification
78
79**Steam Integration Features**:
80- Automatic Steam library detection with multi-library support
81- Steam manifest parsing for build ID extraction
82- Branch detection via Steam's appinfo files
83- Wait-for-branch-switch functionality for user-initiated Steam branch changes
84
85### UI Design Principles
86
87**Modern Electron Interface**: Dark-themed interface with:
88- Custom title bar with window controls
89- Progress tracking for file operations
90- Multi-step setup wizard
91- Responsive layout design
92
93**User Experience**: Prioritizes simplicity and automation:
94- Guided setup process with validation
95- Real-time progress feedback
96- Clear error messaging and recovery options
97
98### Dependencies
99
100**Core Framework**:
101- Electron with TypeScript
102- React for the renderer process
103- Node.js backend services
104
105**Key Dependencies**:
106- `electron`: Application framework
107- `react`: UI library for renderer process
108- Various Node.js packages for Steam integration and file operations
109
110## Development Notes
111
112**DepotDownloader Migration**:
113- Migrated from legacy SteamCMD to modern DepotDownloader for improved reliability
114- Simplified command syntax: `-app 3164500 -branch beta -username user -password pass -dir path`
115- Better Steam Guard support with QR code authentication
116- Parallel downloads with configurable thread counts
117- Enhanced error handling and progress reporting
118
119**Key Technical Details**:
120- **Steam App ID**: Schedule I is hardcoded as "3164500"
121- **Branch Mapping**: main-branch → public, beta-branch → beta, etc.
122- **Build ID Extraction**: Uses manifest files instead of SteamCMD's app_info_print
123- **Configuration**: Stored in `%LOCALAPPDATA%\TVGS\Schedule I\Developer Env\config\`
124
125**Architecture Patterns**:
126- IPC handlers in main process for all system operations
127- Type-safe API exposure through preload script
128- React components with progress tracking and validation
129- Secure credential storage with encryption
130
131**Testing Strategy**:
132- Manual testing of UI flows and Steam integration
133- Validation of DepotDownloader installation and authentication
134- Progress tracking verification for file operations
135- Configuration persistence testing
136
137**File Operations**: Large file operations (environment copying and downloading) show progress with proper cancellation support through Electron IPC communication.
@@ −1 +1 @@
1−# Repository Guidelines
1+# CLAUDE.md
22
3−This guide helps contributors work effectively in the Schedule I Developer Environment Utility repository (WinUI3 + MVVM on .NET 8).
3+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44
5−## Project Structure & Module Organization
6−- `App.xaml`, `MainWindow.xaml`: Application entry/view. Code-behind in `*.xaml.cs`.
7−- `ViewModels/`: MVVM logic (e.g., `MainWindowViewModel`).
8−- `Services/`: Core services (`SteamService`, `ConfigurationService`, `FileLoggingService`).
9−- `Models/`: Data contracts (`DevEnvironmentConfig`, `SteamGameInfo`, `BranchInfo`).
10−- `Assets/`: App icons and splash assets used by the package manifest.
11−- `Properties/PublishProfiles/`: Packaging profiles (`win-x86`, `win-x64`, `win-arm64`).
12−- `memories/`: Change logs and significant updates.
13− - Managed path layout: `<ManagedEnv>/branches/<branch>`, `logs/`, `temp/`.
14− - Config path: `%USERPROFILE%/AppData/LocalLow/TVGS/Development Environment Manager/config.json`.
5+## Build and Development Commands
156
16−## Build, Test, and Development Commands
17−- Restore: `dotnet restore`
18−- Build solution: `dotnet build "Schedule I Developer Environment Utility.sln"`
19−- Run (dev): `dotnet run --project "Schedule I Developer Environment Utility.csproj"`
20−- Publish (profile): `dotnet publish -c Release -p:PublishProfile=Properties/PublishProfiles/win-x64.pubxml`
21−- Publish (self-contained): `dotnet publish -c Release -r win-x64 --self-contained`
7+**Build the application:**
8+```bash
9+npm run build
10+```
2211
23−## Coding Style & Naming Conventions
24−- C#/.NET: 4-space indent; Allman braces; nullable aware.
25−- Names: PascalCase for types/methods; camelCase for locals/fields; `I`-prefix for interfaces; async methods end with `Async`.
26−- MVVM: `*ViewModel` for view-models; avoid code-behind logic beyond UI wiring. Prefer DI via `App.xaml.cs` for services and `ILogger<T>`.
27−- XAML: Bind via properties/commands; keep UI strings in XAML resources when practical.
28− - Theme: app-wide dark mode (`RequestedTheme="Dark"`), title bar styled via `ThemeService`.
12+**Run the application in development:**
13+```bash
14+npm run dev
15+```
2916
30−## Testing Guidelines
31−- No test project currently. Prefer xUnit when adding tests.
32−- Layout: `Tests/ProjectName.Tests/` with mirrors of `Services/` and `Models/` units.
33−- Focus: Service logic and Steam/file operations; UI by manual verification.
34−- Run tests: `dotnet test`
17+**Run the application (production):**
18+```bash
19+npm start
20+```
3521
36−## Commit & Pull Request Guidelines
37−- Commits: Conventional Commits (e.g., `feat(services): add branch parsing`), imperative mood, scoped when helpful.
38−- PRs: clear description, linked issues, screenshots/GIFs for UI changes, reproduction/validation steps, and update docs (`CLAUDE.md`, `AGENTS.md`) if architecture or behavior changes.
22+**Package the application:**
23+```bash
24+npm run package
25+```
3926
40−## Security & Configuration Tips
41−- Do not commit secrets or local AppData artifacts. Use environment variables or user secrets for tokens/keys.
42−- File ops should be cancellable and show progress; avoid logging PII. Steam App ID is handled in `SteamService`.
43− - Branch build IDs are stored per-branch in config; appmanifest copied to each branch folder on copy for drift checks.
27+## Architecture Overview
4428
45−## Documentation & Comments
46−- Use XML comments for public APIs; summarize purpose, params, returns, exceptions.
47−- Document complex logic inline with comments.
48−- After significant changes, update AGENTS.MD and CLAUDE.md as needed.
49−- Create a detailed and compressed new entry in memory.md for significant changes.
29+This is an Electron application built with TypeScript and React that manages development environments for the Steam game "Schedule I". The application provides automated branch management, DepotDownloader integration, and comprehensive Steam library detection.
5030
51−## External Commands & Tools
52−- Use `dotnet` CLI for builds, tests, publishing.
53−- Visual Studio or VS Code for development.
31+### Core Architecture Patterns
5432
33+**Electron Multi-Process Architecture**: The application uses Electron's standard architecture:
34+- **Main Process**: Node.js backend handling system operations and Steam integration
35+- **Renderer Process**: React frontend with secure IPC communication
36+- **Preload Script**: Secure bridge between main and renderer processes
37+
38+**IPC Communication**: All communication between processes uses Electron's IPC system with type-safe interfaces defined in the preload script.
39+
40+### Key Components
41+
42+**Main Process Services** (`src/main/services/`):
43+- `ConfigService`: Manages persistent configuration storage in AppData with DepotDownloader settings
44+- `LoggingService`: File-based logging implementation
45+- `CredentialService`: Secure Steam credential storage and encryption
46+- `UpdateService`: Application update checking and management
47+
48+**IPC Handlers** (`src/main/ipc/`):
49+- `steamHandlers.ts`: Steam library detection, manifest parsing, and branch detection
50+- `depotdownloaderHandlers.ts`: DepotDownloader integration replacing legacy SteamCMD
51+- `configHandlers.ts`: Configuration management operations
52+- `fileHandlers.ts`: File operations with progress tracking
53+- `steamLoginHandlers.ts`: Steam authentication and credential management
54+
55+**React Components** (`src/renderer/components/`):
56+- `SetupWizard/`: Multi-step setup process with DepotDownloader configuration
57+- `ManagedEnvironment/`: Main interface for environment management
58+- `Settings/`: Configuration and preferences management
59+- Progress dialogs and confirmation components
60+
61+**Shared Types** (`src/shared/types.ts`):
62+- `DevEnvironmentConfig`: Central configuration interface with DepotDownloader integration
63+- Steam-related interfaces and branch management types
64+
65+### Application State Management
66+
67+**Configuration Storage**: Uses JSON serialization to AppData (`%LOCALAPPDATA%\TVGS\Schedule I\Developer Env\config\`)
68+
69+**Branch Management**: Supports four branch types: main-branch, beta-branch, alternate-branch, alternate-beta-branch
70+
71+**DepotDownloader Integration Features**:
72+- Modern Steam depot downloading with simplified command syntax
73+- Automatic Steam Guard support with QR codes
74+- Parallel downloads with configurable thread counts
75+- Better error handling and progress reporting compared to legacy SteamCMD
76+- Installation via Windows Package Manager (winget) or manual download
77+- Manifest-based build ID extraction for branch verification
78+
79+**Steam Integration Features**:
80+- Automatic Steam library detection with multi-library support
81+- Steam manifest parsing for build ID extraction
82+- Branch detection via Steam's appinfo files
83+- Wait-for-branch-switch functionality for user-initiated Steam branch changes
84+
85+### UI Design Principles
86+
87+**Modern Electron Interface**: Dark-themed interface with:
88+- Custom title bar with window controls
89+- Progress tracking for file operations
90+- Multi-step setup wizard
91+- Responsive layout design
92+
93+**User Experience**: Prioritizes simplicity and automation:
94+- Guided setup process with validation
95+- Real-time progress feedback
96+- Clear error messaging and recovery options
97+
98+### Dependencies
99+
100+**Core Framework**:
101+- Electron with TypeScript
102+- React for the renderer process
103+- Node.js backend services
104+
105+**Key Dependencies**:
106+- `electron`: Application framework
107+- `react`: UI library for renderer process
108+- Various Node.js packages for Steam integration and file operations
109+
110+## Development Notes
111+
112+**DepotDownloader Migration**:
113+- Migrated from legacy SteamCMD to modern DepotDownloader for improved reliability
114+- Simplified command syntax: `-app 3164500 -branch beta -username user -password pass -dir path`
115+- Better Steam Guard support with QR code authentication
116+- Parallel downloads with configurable thread counts
117+- Enhanced error handling and progress reporting
118+
119+**Key Technical Details**:
120+- **Steam App ID**: Schedule I is hardcoded as "3164500"
121+- **Branch Mapping**: main-branch → public, beta-branch → beta, etc.
122+- **Build ID Extraction**: Uses manifest files instead of SteamCMD's app_info_print
123+- **Configuration**: Stored in `%LOCALAPPDATA%\TVGS\Schedule I\Developer Env\config\`
124+
125+**Architecture Patterns**:
126+- IPC handlers in main process for all system operations
127+- Type-safe API exposure through preload script
128+- React components with progress tracking and validation
129+- Secure credential storage with encryption
130+
131+**Testing Strategy**:
132+- Manual testing of UI flows and Steam integration
133+- Validation of DepotDownloader installation and authentication
134+- Progress tracking verification for file operations
135+- Configuration persistence testing
136+
137+**File Operations**: Large file operations (environment copying and downloading) show progress with proper cancellation support through Electron IPC communication.
