--- phase: 06-rename-cleanup plan: 01 type: execute wave: 1 depends_on: [] files_modified: - "**/*.cs (all ~62 files — namespace string replace)" - Properties/AssemblyInfo.cs - FanucProgramManager.csproj → NcProgramManager.csproj - FanucProgramManager.sln → NcProgramManager.sln - FanucProgramManager.Tests/FanucProgramManager.Tests.csproj → NcProgramManager.Tests/NcProgramManager.Tests.csproj - FANUCMachine.cs (delete) autonomous: true --- ## Goal Rename project from FanucProgramManager to NcProgramManager: namespace, assembly, project files, test folder, and delete dead legacy file. ## Purpose Product is no longer Fanuc-only. Name FanucProgramManager is wrong. NcProgramManager reflects multi-CN scope. ## Output - All namespaces: `FanucProgramManager` → `NcProgramManager` - Project/solution files renamed - Test folder renamed - `FANUCMachine.cs` deleted (zero references outside itself) - Solution builds with no errors ## Project Context @.paul/PROJECT.md @.paul/STATE.md ## Key Files @FanucProgramManager.csproj @FanucProgramManager.sln @Properties/AssemblyInfo.cs @FanucProgramManager.Tests/FanucProgramManager.Tests.csproj ## AC-1: Namespace renamed everywhere ```gherkin Given any .cs file in the project When opened Then namespace declarations and using directives reference NcProgramManager (not FanucProgramManager) ``` ## AC-2: Project and solution files updated ```gherkin Given the renamed solution When opened in Visual Studio or built with msbuild Then assembly name is NcProgramManager, test assembly is NcProgramManager.Tests, project reference resolves ``` ## AC-3: Dead code removed ```gherkin Given FANUCMachine.cs When cleanup completes Then file does not exist (confirmed zero references before deletion) ``` Task 1: Replace FanucProgramManager string in all .cs files All *.cs files under project root (recursively) Run find+sed to replace all occurrences of `FanucProgramManager` with `NcProgramManager` in every .cs file: ```bash find /path/to/project -name "*.cs" -exec sed -i 's/FanucProgramManager/NcProgramManager/g' {} + ``` This covers: - `namespace FanucProgramManager` → `namespace NcProgramManager` - `namespace FanucProgramManager.Cnc` → `namespace NcProgramManager.Cnc` - `using FanucProgramManager;` → `using NcProgramManager;` - `using FanucProgramManager.Cnc.Fanuc;` → `using NcProgramManager.Cnc.Fanuc;` - All sub-namespaces (.Cnc, .Cnc.Fanuc, .Cnc.Heidenhain, .Cnc.Siemens, .Cnc.Mitsubishi, .Cnc.Models) - `InternalsVisibleTo("FanucProgramManager.Tests")` in AssemblyInfo.cs - `AssemblyTitle`, `AssemblyProduct` in AssemblyInfo.cs Avoid: editing binary files, NuGet package cache, obj/bin folders. Use: `-not -path "*/obj/*" -not -path "*/bin/*" -not -path "*/.paul/*"` ```bash grep -r "FanucProgramManager" --include="*.cs" . ``` Must return zero results. AC-1 satisfied: no .cs file contains FanucProgramManager Task 2: Update project and solution metadata files FanucProgramManager.csproj, FanucProgramManager.Tests/FanucProgramManager.Tests.csproj, FanucProgramManager.sln In `FanucProgramManager.csproj`: - `FanucProgramManager` → `NcProgramManager` - `FanucProgramManager` → `NcProgramManager` In `FanucProgramManager.Tests/FanucProgramManager.Tests.csproj`: - `FanucProgramManager.Tests` → `NcProgramManager.Tests` - `FanucProgramManager.Tests` → `NcProgramManager.Tests` - `` → `` - `FanucProgramManager` → `NcProgramManager` In `FanucProgramManager.sln`: - Project line: `"FanucProgramManager", "FanucProgramManager.csproj"` → `"NcProgramManager", "NcProgramManager.csproj"` - Project line: `"FanucProgramManager.Tests", "FanucProgramManager.Tests\FanucProgramManager.Tests.csproj"` → `"NcProgramManager.Tests", "NcProgramManager.Tests\NcProgramManager.Tests.csproj"` ```bash grep -n "FanucProgramManager" FanucProgramManager.csproj FanucProgramManager.Tests/FanucProgramManager.Tests.csproj FanucProgramManager.sln ``` Must return zero results. AC-2 satisfied: all project metadata references NcProgramManager Task 3: Rename files/folder and delete dead code FANUCMachine.cs (delete), FanucProgramManager.csproj → NcProgramManager.csproj (rename), FanucProgramManager.sln → NcProgramManager.sln (rename), FanucProgramManager.Tests/ → NcProgramManager.Tests/ (folder rename), FanucProgramManager.Tests/FanucProgramManager.Tests.csproj → NcProgramManager.Tests/NcProgramManager.Tests.csproj (rename) 1. Delete `FANUCMachine.cs` — confirmed dead: no file outside itself references `FANUCMachine`. Also remove its `` entry from csproj. 2. Rename project file: ```bash mv FanucProgramManager.csproj NcProgramManager.csproj ``` 3. Rename solution file: ```bash mv FanucProgramManager.sln NcProgramManager.sln ``` 4. Rename test folder (this moves all contents): ```bash mv FanucProgramManager.Tests NcProgramManager.Tests ``` 5. Rename test csproj inside the now-renamed folder: ```bash mv NcProgramManager.Tests/FanucProgramManager.Tests.csproj NcProgramManager.Tests/NcProgramManager.Tests.csproj ``` Order matters: rename folder BEFORE renaming csproj inside it. The .sln file was already updated in Task 2 to reference new paths — verify paths match after rename. Avoid: renaming `Cnc/Fanuc/` folder or any Fanuc-prefixed class files — `FanucMachine`, `FanucConnectionConfig` etc. are manufacturer-specific names, keep them. ```bash ls NcProgramManager.csproj NcProgramManager.sln NcProgramManager.Tests/NcProgramManager.Tests.csproj ls FANUCMachine.cs 2>&1 # must say: No such file grep "FANUCMachine" NcProgramManager.csproj # must return nothing ``` AC-2 and AC-3 satisfied: files renamed, dead code deleted, .sln paths match physical files ## DO NOT CHANGE - `Cnc/Fanuc/` folder name — Fanuc is a manufacturer name, not a project name - `FanucMachine.cs`, `FanucConnectionConfig.cs`, `FanucCapabilities.cs` — manufacturer-specific class names, keep - `FanucProgram.cs` — Fanuc ISO program format class, name is accurate - `FanucProgramParsingTests.cs` — test file for FanucProgram, name is accurate - `IFanucMachine.cs` — interface name correct (Fanuc-specific capability set) - Any class name that describes Fanuc-specific behavior ## SCOPE LIMITS - No Italian → English rename in this plan (deferred) - No logic changes — pure rename/delete only - No NuGet package changes - No new files created Before declaring plan complete: - [ ] `grep -r "FanucProgramManager" --include="*.cs" .` returns zero results - [ ] `grep -r "FanucProgramManager" --include="*.csproj" .` returns zero results - [ ] `grep "FanucProgramManager" NcProgramManager.sln` returns zero results - [ ] `ls FANUCMachine.cs` returns "No such file" - [ ] `ls NcProgramManager.csproj NcProgramManager.sln NcProgramManager.Tests/` all exist - [ ] All acceptance criteria met - All tasks completed - All verification checks pass - No FanucProgramManager references remain in .cs, .csproj, or .sln files - FANUCMachine.cs deleted - Project file names match NcProgramManager After completion, create `.paul/phases/06-rename-cleanup/06-01-SUMMARY.md`