Skip to content

docs(decision): D-108 berichtigen — die Ankerliste wird geöffnet, nicht festgeschrieben - #99

Merged
cubetribe merged 1 commit into
mainfrom
docs/d108-korrektur
Aug 18, 2026
Merged

docs(decision): D-108 berichtigen — die Ankerliste wird geöffnet, nicht festgeschrieben#99
cubetribe merged 1 commit into
mainfrom
docs/d108-korrektur

Conversation

@cubetribe

Copy link
Copy Markdown
Collaborator

Berichtigt die Prämisse von D-108 und fasst die Entscheidung in der Sache neu.
Reine Dokumentation — der Code wird in diesem PR nicht angefasst.

Was falsch war

Die Erstfassung von D-108 (2026-08-17) behauptete, ConstructionSystem lasse
bereits jedes eigene Gebäude als Bauanker gelten, und wollte diesen Zustand
lediglich aussprechen. Der Code tut das nicht:

// ConstructionSystem.IsInsideBuildInfluence
if (def.Role != UnitRole.HQ && def.Role != UnitRole.Storage && def.Role != UnitRole.Power) continue;

Anker sind HQ, Lager und Kraftwerk. Kaserne, Fahrzeugfabrik, Raffinerie,
Radar, Labor und Verteidigungsplattform erweitern die Zone nicht. D-104 Punkt 2
sagt genau das, wörtlich:
„Ein Neubau braucht ein eigenes, lebendes und
fertiggestelltes HQ, Lager oder Kraftwerk in höchstens acht Zellen Abstand."

Der Fehler entstand, weil der Docstring von BuildInfluenceRadiusCells und
Issue #92 von einem „eigenen Bauanker" sprechen, ohne die Rollenliste zu nennen —
und die Implementierung vor der Beschlussfassung nicht gelesen wurde.

Gefunden hat ihn der ausführende Agent beim Umsetzen von Paket 21.1. Er hat
angehalten und nachgefragt, statt den Widerspruch selbst aufzulösen. Das ist
genau der Weg, den die Vorrangregel des Auftrags verlangt, und er hat hier eine
Entscheidung auf falscher Grundlage abgefangen.

Was jetzt gilt

Der Inhaber hat in Kenntnis der tatsächlichen Lage neu entschieden: nicht die
Bestandsregel festschreiben, sondern die Ankerliste öffnen. Jedes eigene,
lebende und fertiggestellte Gebäude wird Anker; die Rollenprüfung entfällt.

Damit ist D-108 keine Festschreibung mehr, sondern eine Verhaltensänderung:

  • RulesHash64 bewegt sich
  • die Determinismus-Baselines werden rot
  • der gepinnte Ausgang der kanonischen KI-Partie (CanonicalAiOutcomeTests,
    Einheitenstrang) bewegt sich mit

Also: eigener Regel-PR, zweiter PR für die Baselines, und ein mit @arn-c0de
abgestimmtes Merge-Fenster, bevor irgendetwas davon aufmacht.

Bewusst in Kauf genommen und im D-ID vermerkt: ab jetzt kann sich ein Spieler mit
einer Kette billiger Gebäude über die Karte schieben, weil auch Kaserne und
Verteidigungsplattform ankern. In C&C etabliertes Verhalten, und im Zusammenspiel
mit 21.6/21.7 der Weg, auf dem ein umkämpftes Feld überhaupt erschlossen wird.

Die Messung ist erledigt — beide Konstanten bleiben

Aus Paket 21.1, nachgerechnet:

MinimumBuildingDistanceCells Gebäude in der Startzone
2 (Ist, D-104) 15
1 23 (+53 %)
0 23 — identisch zu 1, weil die Footprint-Belegung Abstand unter 1 ohnehin verbietet

Der einzige wirksame Hebel wäre 2 → 1, und beide Konstanten bleiben
unverändert
. Die Zahl weist die gemeldete Enge nicht als Abstandsproblem aus,
und die 15 sind ohnehin nur eine untere Schranke für die Anfangszone — jeder
Anker schiebt die Grenze mit.

Nachgezogen

  • D-108 komplett neu gefasst, mit sichtbarem Abschnitt „Berichtigung"; der
    Fehler wird nicht stillschweigend überschrieben
  • Paket 21.1 im Sprint: von Dokumentationspaket zu Verhaltensänderung, mit
    Messergebnis, Regeländerung und zweifachem Docstring-Nachzug
  • R-2, R-3, Versionsrelevanz, „Fertig wenn" im Sprint sowie Pakettabelle
    und Merge-Fenster-Hinweis
    im Auftrag
  • Changelog-Zeilen unter [Unreleased]

Nachweis

python3 .github/scripts/check_docs.py grün (183 Markdown-Dateien). Kein
Spielcode berührt, keine Baseline bewegt.

…ht festgeschrieben

Die Erstfassung von D-108 behauptete, ConstructionSystem lasse bereits jedes
eigene Gebäude als Bauanker gelten, und wollte diesen Zustand nur aussprechen.
Das war falsch: IsInsideBuildInfluence prüft seit D-104 auf HQ, Lager und
Kraftwerk, und D-104 Punkt 2 sagt das wörtlich. Der Docstring von
BuildInfluenceRadiusCells nennt die Rollenliste nicht — daraus entstand die
falsche Prämisse.

Gefunden hat den Widerspruch der ausführende Agent beim Umsetzen von Paket 21.1;
er hat angehalten und nachgefragt, statt ihn selbst aufzulösen. Der Inhaber hat
daraufhin in Kenntnis der tatsächlichen Lage neu entschieden: nicht die
Bestandsregel festschreiben, sondern die Ankerliste öffnen.

Folgen, die in den Dokumenten nachgezogen sind:
- D-108 ist damit eine Verhaltensänderung, keine Festschreibung. RulesHash64,
  die Determinismus-Baselines und der gepinnte Ausgang der kanonischen KI-Partie
  bewegen sich. Eigener Regel-PR, zweiter Baseline-PR, Merge-Fenster mit dem
  Einheitenstrang.
- Paket 21.1 neu gefasst: Messung erledigt (15 bei Abstand 2, 23 bei 1, 23 bei
  0), beide Konstanten bleiben unverändert, Regeländerung und zweifacher
  Docstring-Nachzug ergänzt.
- R-2, R-3, Versionsrelevanz und "Fertig wenn" im Sprint sowie Pakettabelle und
  Merge-Fenster-Hinweis im Auftrag nachgezogen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cubetribe
cubetribe merged commit e650864 into main Aug 18, 2026
6 checks passed
@cubetribe
cubetribe deleted the docs/d108-korrektur branch August 18, 2026 07:31
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