nc_program_manager/.paul/phases/06-rename-cleanup/06-01-PLAN.md
dtrentin a5d73db69a refactor(rename): FanucProgramManager → NcProgramManager
Phase 06 complete:
- Namespace renamed in 62 .cs files (namespace + using directives)
- AssemblyName + RootNamespace updated in csproj files
- FanucProgramManager.csproj → NcProgramManager.csproj
- FanucProgramManager.sln → NcProgramManager.sln
- FanucProgramManager.Tests/ → NcProgramManager.Tests/
- FANUCMachine.cs deleted (dead code, zero references)

Fanuc-prefixed class names kept (FanucMachine, FanucProgram,
IFanucMachine) — manufacturer identifiers, not project names.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 22:31:36 +02:00

8.2 KiB

phase plan type wave depends_on files_modified autonomous
06-rename-cleanup 01 execute 1
**/*.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)
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: FanucProgramManagerNcProgramManager
  • 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

<acceptance_criteria>

AC-1: Namespace renamed everywhere

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

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

Given FANUCMachine.cs
When cleanup completes
Then file does not exist (confirmed zero references before deletion)

</acceptance_criteria>

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`:
- `<RootNamespace>FanucProgramManager.Tests</RootNamespace>` → `<RootNamespace>NcProgramManager.Tests</RootNamespace>`
- `<AssemblyName>FanucProgramManager.Tests</AssemblyName>` → `<AssemblyName>NcProgramManager.Tests</AssemblyName>`
- `<ProjectReference Include="..\FanucProgramManager.csproj">` → `<ProjectReference Include="..\NcProgramManager.csproj">`
- `<Name>FanucProgramManager</Name>` → `<Name>NcProgramManager</Name>`

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

<success_criteria>

  • 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 </success_criteria>
After completion, create `.paul/phases/06-rename-cleanup/06-01-SUMMARY.md`