Skip to content

culture(austria): migrate hofstede_bag -> khai_lexicon (v1 -> v2 schema)#569

Merged
ChBrain merged 1 commit into
culture/releasefrom
culture/austria
May 27, 2026
Merged

culture(austria): migrate hofstede_bag -> khai_lexicon (v1 -> v2 schema)#569
ChBrain merged 1 commit into
culture/releasefrom
culture/austria

Conversation

@ChBrain

@ChBrain ChBrain commented May 27, 2026

Copy link
Copy Markdown
Owner

Same mechanical migration as #567 (germany). Framework unchanged: Hofstede 6D, ±5 band, same dimensions, same scores.

What changed

Before After
regions/europe/austria/hofstede_bag.yaml khai_lexicon.yaml
regions/europe/austria/hofstede_decisions.md khai_lexicon_decisions.md
culture_austrian_position.md frontmatter: hofstede: aggregate markers: aggregate
culture_austrian_position.md content Added ## Title\nAustrian\n chapter (required by khai-tests==0.1.19)

Schema deltas in the YAML

v1 v2
country: austria + parent: null subject: austria + region: europe + subregion: austria
hofstede_scores: marker_scores:
khai_lexicon_version: 1, marker_set: hofstede

Denylist and bags copy verbatim.

Scores

Unchanged. Match data/hofstede_scores.json:

PDI 11 · IDV 55 · UAI 70 · MAS 79 · LTO 60 · IND 63

Score-validity re-check

test_marker_derived.py::test_derived_within_tolerance[austria] passes — Austrian position file's voice still hits target within ±5 across all six dimensions. Recorded in khai_lexicon_decisions.md under "v1 -> v2 schema migration".

Verification

Gate Result
python tests/branch_scope.py advise all files → culture/austria (base culture/release) ✅
python tests/validate_pr_brownfield.py origin/culture/release "Touched files are migration-current" ✅
pytest tests/test_marker_derived.py -k austria 2/2 pass ✅
khai_tests.components.test_khai_position 6/6 pass ✅
Pre-commit hook clean, no --no-verify

Unblocks

Two of three DACH members now migrated (Germany via #567, Austria here). Switzerland follows in a parallel PR. Once all three land, #564 (DACH baking) rebases cleanly onto culture/release and its brownfield R3 gate stops firing.

Ref: #564, #567, #545


Generated by Claude Code

Same mechanical migration as #567 (germany). Framework unchanged
(Hofstede 6D, ±5 band).

Files:
- hofstede_bag.yaml          -> khai_lexicon.yaml
- hofstede_decisions.md      -> khai_lexicon_decisions.md
- culture_austrian_position.md frontmatter: hofstede: aggregate
                                          -> markers: aggregate
- culture_austrian_position.md content: added ## Title chapter
  (required by khai-tests==0.1.19; pattern from #567)

Schema deltas in the YAML:
- country: austria + parent: null  -> subject: austria + region: europe
                                      + subregion: austria
- hofstede_scores:                 -> marker_scores:
- new keys: khai_lexicon_version: 1, marker_set: hofstede

Scores unchanged: PDI 11, IDV 55, UAI 70, MAS 79, LTO 60, IND 63.

Brownfield score-validity check passes
(test_marker_derived.py[austria]) -- position file's voice still hits
target within ±5 across all six dimensions.

Unblocks PR #564 (DACH baking on culture/europe): two of three DACH
members now migrated; Switzerland follows next.
@github-actions

Copy link
Copy Markdown

khai_tests.review on this PR

austria

khai_tests.review prose-naturalness

culture_austrian_position.md -- prose naturalness -- flagged

  • "Die Anredeinflation als Höflichkeitsritus." - Unnatürliches Phrasing; "Anredeinflation" klingt wie ein Anglizismus und ist nicht idiomatisch.
  • "Das ist nicht Schattenregierung." - Unnatürlich; der Ausdruck "Schattenregierung" könnte missverstanden werden und klingt nicht idiomatisch.
  • "Die flache Rangordnung an der Oberfläche, die geschichtete Realität dahinter." - Unklare Formulierung; "flache Rangordnung" und "geschichtete Realität" sind nicht idiomatisch und wirken wie eine Übersetzung.
  • "Die Vorschrift steht." - Unnatürlich; "Die Vorschrift ist festgelegt." wäre idiomatischer.
  • "Das Kollektiv hält den Einzelnen, aber es lässt ihm seine persönliche Freiheit, seine Eigenverantwortung, sein Privatleben." - Unnatürlich; der Satz könnte klarer formuliert werden, um flüssiger zu klingen.
  • "Die Geduld als Form: das Beamtentum kennt sie, der Bauer kennt sie, der Wiener im Kaffeehaus kennt sie." - Unnatürlich; "Die Geduld als Form" klingt wie eine Übersetzung und nicht idiomatisch.
  • "Die Historie wird betrieben, nicht ausgestellt." - Unnatürlich; "Die Geschichte wird gepflegt, nicht zur Schau gestellt." wäre idiomatischer.
  • "Das Individuum lebt sein Privatleben in eigener Auswahl, in voller Unabhängigkeit; aber zum Faschingsumzug geht es trotzdem, weil das die Gemeinde von ihm erwartet." - Unnatürlich; der Satz ist zu komplex und könnte klarer formuliert werden.

khai_tests.review persona-distinct

austrian_persona_female_maria.md, austrian_persona_male_franz.md -- persona distinctness -- PASS

khai_tests.review shadow-not-position

austrian_persona_female_maria.md vs culture_austrian_position.md -- shadow != position -- PASS

khai_tests.review typical-of

austrian_persona_female_maria.md -- typical of Austria culture -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review shadow-not-position

austrian_persona_male_franz.md vs culture_austrian_position.md -- shadow != position -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review typical-of

austrian_persona_male_franz.md -- typical of Austria culture -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review vocab-overlap

culture_austrian_piece_history.md vs culture_austrian_position.md -- vocab overlap -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review vocab-overlap

culture_austrian_piece_kaffeehaus.md vs culture_austrian_position.md -- vocab overlap -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review vocab-overlap

culture_austrian_place_vienna.md vs culture_austrian_position.md -- vocab overlap -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review vocab-overlap

culture_austrian_position_language.md vs culture_austrian_position.md -- vocab overlap -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)

khai_tests.review vocab-overlap

culture_austrian_process_sichs_richten.md vs culture_austrian_position.md -- vocab overlap -- model error

MODEL_ERROR: HTTP 429 (after 3 attempts)


Advisory -- does not block merge. Built on khai_tests.review.

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.

2 participants