Skip to content

fix(ai): widen the wave commit ring by the staging flank offset (Refs #101) - #153

Draft
cubetribe wants to merge 1 commit into
feat/134-harvester-born-harvestingfrom
fix/101-flanked-staging-commit-ring
Draft

cubetribe wants to merge 1 commit into
feat/134-harvester-born-harvestingfrom
fix/101-flanked-staging-commit-ring

Conversation

@cubetribe

Copy link
Copy Markdown
Collaborator

Gestapelt auf #134 (feat/134-harvester-born-harvesting, SkirmishAiSystem/AiBehaviorId r10). Nach dem Merge von #134 Base auf main umstellen.

Was: IsCommittedToTheWave misst den Ring jetzt mit StagingDistanceCells + |Personality.FlankOffsetCells| + StagingToleranceCells, weiterhin ab dem HQ. AiBehaviorId r11 (Profil-Hash unverändert). Drei neue Tests (7 Fälle) in SkirmishGoalTests, EditMode-Spiegel nachgezogen.

Warum: D-114 versetzt den Sammelpunkt seitlich um bis zu 10 Felder; der Commit-Ring (16) blieb bei Chebyshev 22 zurück. Folge: kein Hold, stückweiser Angriff ab Tick ~1100 vor WaveReady in rund zwei Dritteln der Seeds. Ohne den Fix greift jede Verteidigungsregel aus #101 nur halb. Refs #101 (Vorbedingung), Entscheidung D-127 (Entwurf); D-114 per Statusvermerk berichtigt.

Bereiche: Scripts/AI/, AI.Data/, Tests beider Spuren, DecisionLog, CHANGELOG.

Baselines: Keine Guard-Datei berührt. CanonicalAiOutcomeTests unverändert grün (Tick 2726, gleicher Endzustand — kanonischer Seed hat Flanke 0). AiPersonalityTests grün, Matrix 2.208–2.871 Ticks (vorher 1.987–2.982).

Changelog: [Unreleased] → Behoben.
Tests: dotnet test 793/793; Negativkontrolle ohne Fix: genau die ±10-Fälle rot; check_docs.py OK; Guard-Selbsttest OK.
Unity-Spuren: nicht gelaufen (EditMode-Spiegel nur headless im Scratch kompiliert, 12/12).
Spielabnahme: nicht gespielt — Wirkung headless gegen passiven Gegner belegt; volle Welle vom versetzten Sammelpunkt gegen einen Menschen ungemessen.

Berichte: reports/v8.6.0/issue-lauf-2026-10-17/09-issue-101a-*.md, 09b-review-1-issue-101a.md.

🤖 Generated with Claude Code

D-114 gave every personality a sideways staging offset of up to 10
cells, but IsCommittedToTheWave still measured its ring with the plain
staging distance plus tolerance from the HQ. A flanked staging cell sits
at Chebyshev 22 while the ring reaches 16, so waiting units counted as
already out: no Hold, piecemeal attacks from tick ~1100 before the first
wave was ready, in two thirds of all seeds. The ring now adds the
absolute flank offset and keeps measuring from the HQ; measuring from
the staging cell itself is documented as the variant that oscillated
before. AiBehaviorId rises to r11; the profile hash is unchanged.

Refs #101 (precondition for defending fields and harvesters). Decision
D-127 (draft; binding with the merge); D-114 gets a status note instead
of a rewrite. CanonicalAiOutcomeTests is unchanged (tick 2726, same end
state), AiPersonalityTests stay green. Sim tests 793/793; the new tests
are red without the fix. Unity EditMode mirror not run; not played.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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