Skip to content

feat(construction): jedes eigene fertige Gebäude wird Bauanker (D-108, Paket 21.1b) - #109

Merged
cubetribe merged 1 commit into
mainfrom
feat/s21-anchor-rule
Aug 18, 2026
Merged

feat(construction): jedes eigene fertige Gebäude wird Bauanker (D-108, Paket 21.1b)#109
cubetribe merged 1 commit into
mainfrom
feat/s21-anchor-rule

Conversation

@cubetribe

Copy link
Copy Markdown
Collaborator

Setzt D-108 um. Paket 21.1 Teil b aus docs/production/hashkrieg/21_Sprint_Verknappungsfolgen.md. Teil a (die Messung) ist mit #100 gelandet.

Die Regel

Statt der Rollenliste HQ/Lager/Kraftwerk (D-104) ist ab jetzt jedes eigene, lebende, fertiggestellte Gebäude ein Bauanker und schiebt die Bauzone um seinen eigenen Radius weiter.

Baustellen niemals. Sie tragen seit Paket 16.3 (#44) ihre Definitionsrolle und wären damit versehentlich Anker geworden; der Ausschluss läuft ausdrücklich über IsActiveSite — dasselbe Register, das die Strom- und Kapazitätsprüfungen der Wirtschaft benutzen.

Bewusst in Kauf genommen (D-108): eine Kette billiger Gebäude kann die Bauzone über die Karte schieben. Diese Kopplung von Expansion an die Wirtschaft ist das entschiedene Verhalten, kein Fehler — sie steht so auch im Docstring.

Nachweis

  • dotnet test tools/Nova.SimRunner.Tests726/726 grün (Baseline vorher 725/725)
  • Unity EditMode auf dem Integrationsstand — 592/592 grün
  • Neuer Test ValidatePlacement_EveryCompletedBuildingExtendsTheZone_ItsSiteDoesNot in beiden Spuren (EditMode und .NET)
  • Gegenprobe: der neue Test wurde gegen die alte Produktionsregel laufen gelassen und schlägt dort fehl (Expected: Applied / But was: RejectedInvalidTarget). Er pinnt also die Regeländerung und nicht irgendetwas.

Die erwartete Baseline-Bewegung blieb aus

Der Sprint hatte für dieses Paket ein eigenes Merge-Fenster mit dem Einheitenstrang vorgesehen (Risiko R-3), weil RulesHash64 und der gepinnte KI-Ausgang sich bewegen sollten. Beide bewegen sich nicht:

  • CanonicalAiOutcomeTests bleibt grün — die kanonische KI-Partie versucht nie eine Platzierung, deren Validierungsausgang unter der neuen Regel kippt
  • RulesHash64 bleibt gleich, weil ComputeRulesHash64 nur numerische Regelkonstanten hasht und die Ankerrollenliste nie ein gehashtes Feld war

Das zweite ist eine Lücke, kein Glück, und ist als #108 festgehalten. Ein Baseline-PR ist für diesen hier nicht nötig, und das Merge-Fenster entfällt.

Kein bestehender Test musste angepasst werden: die Dreierliste stand nur in Docstrings.

Schreibhoheit

Simulation/Construction/ — Netzstrang/Maintainer, seit D-095 aktiv. Keine eingefrorene Datei, keine fremde Datei berührt.

🤖 Generated with Claude Code

…8, 21.1b)

Statt der Rollenliste HQ/Lager/Kraftwerk (D-104) ist ab jetzt jedes eigene,
lebende, FERTIGGESTELLTE Gebaeude ein Bauanker und schiebt die Bauzone um
seinen eigenen Radius weiter. Baustellen niemals — sie tragen seit 16.3 zwar
ihre Definitionsrolle, sind aber ueber IsActiveSite ausdruecklich ausgenommen.

Bewusst in Kauf genommen (D-108): eine Kette billiger Gebaeude kann die Zone
ueber die Karte schieben. Diese Kopplung von Expansion an die Wirtschaft ist
das entschiedene Verhalten, kein Fehler.

Nachweis 726/726 gruen (Baseline vorher 725/725). Der neue Test wurde gegen
die alte Regel gegengeprueft und schlaegt dort fehl (Applied vs.
RejectedInvalidTarget), pinnt also die Regelaenderung und nichts Beliebiges.
Entgegen der Erwartung im Auftrag bewegt sich weder der gepinnte KI-Ausgang
noch RulesHash64 — siehe Bericht; ein Baseline-PR ist nicht noetig.

Umsetzung durch den Kimi-K3-Worker.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cubetribe
cubetribe force-pushed the feat/s21-anchor-rule branch from cca97a7 to 6fcfeb0 Compare August 18, 2026 12:29
@cubetribe
cubetribe merged commit adff15f into main Aug 18, 2026
7 checks passed
@cubetribe
cubetribe deleted the feat/s21-anchor-rule branch August 18, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant