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>
8.2 KiB
8.2 KiB
| phase | plan | type | wave | depends_on | files_modified | autonomous | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 06-rename-cleanup | 01 | execute | 1 |
|
true |
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.csdeleted (zero references outside itself)- Solution builds with no errors
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 nameFanucMachine.cs,FanucConnectionConfig.cs,FanucCapabilities.cs— manufacturer-specific class names, keepFanucProgram.cs— Fanuc ISO program format class, name is accurateFanucProgramParsingTests.cs— test file for FanucProgram, name is accurateIFanucMachine.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
<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>