feat: add _Template and New-Engine.ps1 for starting new engines
Each engine-building run started from a hand-copied scaffold (Qwen's), which carried that engine's name and stale notes. _Template holds the generic scaffold with a __NAME__ placeholder, and New-Engine.ps1 stamps out a named copy. The template's starter tests go through the benchmark's NestValidator, so a model gets a real pass/fail target instead of a plumbing-only check; they were verified to pass against Opus55. Directory.Build.props now also detects when it sits in an Engines/ folder inside an OpenNest checkout, so an engine stamped there with -IncludeBuildFiles builds without passing OpenNestRoot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,23 @@ dotnet test OpenNest.Engine.Opus55/tests/OpenNest.Engine.Opus55.Tests.csproj
|
||||
|
||||
Each engine's README covers its algorithm and benchmark results.
|
||||
|
||||
## Writing a new engine
|
||||
|
||||
```powershell
|
||||
./New-Engine.ps1 -Name Nova
|
||||
```
|
||||
|
||||
This copies `_Template/` to `OpenNest.Engine.Nova/`: an `INestingEngine` stub, a README
|
||||
spelling out what counts as an independent engine, and starter acceptance tests checked by
|
||||
the benchmark's own `NestValidator` (they fail until `Solve()` is implemented).
|
||||
|
||||
To work inside an OpenNest checkout instead, stamp it into an `Engines/` folder there and
|
||||
bring the shared build files along; they detect that layout automatically:
|
||||
|
||||
```powershell
|
||||
./New-Engine.ps1 -Name Nova -Destination <OpenNest>/Engines -IncludeBuildFiles
|
||||
```
|
||||
|
||||
## Layout
|
||||
|
||||
Each engine lives in `OpenNest.Engine.<Name>/` with an optional `tests/` subproject.
|
||||
|
||||
Reference in New Issue
Block a user