99 Commits
Author SHA1 Message Date
wassnameandClaude Opus 5 f6c22aca30 Measure how far each model sits from a human cluster, in cluster SDs
Lets a model be described as a 2.9 sigma member of the West instead of
"somewhere west of Silicon Valley". Signed per-axis z says which way and how
far on a named axis; Mahalanobis says how odd the placement is overall, and
uses the cluster covariance because the zones are elongated and tilted.

Reads the committed coords in wvs_model_ci.md rather than the coord cache,
so it reruns offline without re-querying seventeen models.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 14:22:35 +08:00
wassnameandClaudypoo 00105855dc journal: random-baseline confound + raw per-choice output question (2026-07-17a)
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-17 14:28:35 +08:00
wassnameandClaudypoo cfd334512a wvs_map: bake title + repo attribution inside the axes, add top headroom
Draw the title and github.com/wassname/moral-maps note in the empty bottom-left
INSIDE the axes so a crop can't strip attribution and there's no whitespace band.
Give the models overlay extra top headroom so the most-secular model stars and
their labels seat inside the frame instead of spilling above it. Regenerate PNG+SVG.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-09 16:02:29 +08:00
wassnameandClaudypoo 469788c418 rename package tinymfv -> moralmaps (repo -> moral-maps)
Import name tinymfv -> moralmaps, pip name tiny-mfv -> moral-maps, GitHub
URLs wassname/tinymfv -> wassname/moral-maps. HuggingFace dataset id
wassname/tiny-mfv left as-is (separate namespace, published data artifact).
Historical docs/spec/* and RESEARCH_JOURNAL keep their dated paths.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-09 10:41:49 +08:00
wassnameandClaudypoo 28778a7af5 README: panel fixes (define activation steering, MFQ-2/binding-foundations glosses, file pointers for WVS axes, drop 'surgical-informedness view' coinage) + panel artifacts
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-09 10:11:26 +08:00
wassname b13e9a7457 v2 2D honesty x credulity grid plots (6 figures)
dS cosine=-0.0229, all 25 cells pmass=1.0, 0 NaN.
Honesty moves Social Norms/Fairness/Liberty; Credulity moves Social Norms/Authority/Sanctity.
2026-07-07 04:49:19 +08:00
wassnameandClaudypoo bb5edddbbb MFV: drop the culture map + quadrant, keep range vs pooled reference (invariance failure)
MFV country norms fail cross-country measurement invariance (Jimenez-Leal 2025: non-invariance + DIF,
'cross-cultural comparisons restricted') and are stitched from 5 studies, so the culture map/quadrant
drew false structure (inverted West vs Latin America). Delete plot_mfv_map + plot_mfv_value and the
value_coords_contrast/axis_contrast helpers; MFV keeps only the range plot, now against ONE pooled
human reference (mean of the 8 z-scored samples), no per-country identity. Add data-dir note + README
caveats citing the sources.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 21:45:15 +08:00
wassnameandClaudypoo fdc4b137dd journal: MFV fails cross-country invariance (Jimenez-Leal 2025) -> drop MFV culture layer
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 21:34:41 +08:00
wassnameandClaudypoo 6bc2235156 docs: original WVS title (drop Economist headline), fold in China/global-South framing
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 19:32:27 +08:00
wassnameandClaudypoo 541434b80f maps: anchor orientation geographically (West->west, African-Islamic->south) on every map
One shared orient_geographic() helper folds axis signs into the coords (value maps) or into Vt
(ipsative PCA, so dots/haze/steer/compass all inherit one flip). Replaces the WVS-only invert_x hack;
every map now reads left/right the same way. Regenerate instrument showcase maps.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 19:30:44 +08:00
wassnameandClaudypoo 8aa1e11e44 docs: range plots as newspaper small-multiples (plain-sentence captions, drop dash-fragments)
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 19:19:11 +08:00
wassnameandClaudypoo 8d04bfcdaa docs: humanise figure captions (Economist voice), lift MFV, add all range plots
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 18:39:00 +08:00
wassnameandClaudypoo 493f5335e3 docs: figures README with Economist-style captions; regenerate all maps
docs/img/README.md is a captioned gallery: each figure states what the dots are, the
named axes and their source paper, the readout (rated sampling N=12 for the frontier
panel, logprobs N=8 for the steering showcase), and for the steer the base model
(Qwen3-4B), the Authority PCA vector, and +c/-c directions. Regenerate all maps with the
edge-inset + roomier margins.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 17:15:46 +08:00
wassnameandClaudypoo 9f16db0bfb value maps: pole signposts are obstacles (keep-out band) so zone labels clear them
The four pole signposts (Adaptive / Self-directed ...) draw on the crosshair edges after
label placement, so a zone name near the frame collided with them (African-Islamic vs
Adaptive on the humor map). Feed each pole in as a short keep-out band of obstacle points.
Regenerate committed WVS + showcase maps.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 14:28:19 +08:00
wassnameandClaudypoo e2e16fa377 labelplace: region labels hug the hull (nearest clear ring) + anisotropic marker spacing
Region labels maximised clearance, which fled to the FARTHEST open space -- the polygon
name ended up floating far from its hull. Instead take the nearest perimeter ring that
has a clear slot (emptiest spot on that ring), so the name hugs its own hull edge. Marker
spacing beyond the glyph is now anisotropic (spacing_x=0.5, spacing_y=0.3): text stacks
tighter vertically, so pull labels in more up-down than left-right. Marker clearance pad
is unscaled, so nothing lands on its own star. Re-render WVS + showcase.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 14:01:11 +08:00
wassnameandClaudypoo 90f1e4cabc showcase: regenerate value maps with the new labelplace allocator
The per-instrument value maps (big5/humor/mfq2) now route labels through
labelplace.allocate_labels: zone names in clear air (no white boxes), country
labels adjacent, steer path unchanged. Ipsative/range figures re-emitted from the
same run for a consistent set.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 13:47:00 +08:00
wassnameandClaudypoo a219659c0f labelplace: region labels reach ~3 text-heights out so central hulls find clear air
Fresh-eyes QA caught the "East Asia" zone label hugging its (central, crowded) red hull
edge. Region labels only searched 0-0.9 text-heights off the perimeter; widen to 3.0 so
the clearance search can escape a surrounded hull into open space.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 13:45:32 +08:00
wassnameandClaudypoo e11f278a60 wvs map: commit the rendered panel (png+svg+CI table) + drop stale "textalloc" doc refs
The 17-model IW map now renders through labelplace.allocate_labels; save the artifact
into the repo (png for viewing, svg for hand-editing labels, CI table as companion).

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 13:43:16 +08:00
wassnameandClaudypoo 2d56062769 value maps: connected base->+c/-c steer path + zone-label obstacles
plot_value_map now takes a steer= dict and draws the steer as a connected
black->red(+c)/blue(-c) path (matching the ipsative map's trajectory) instead
of three disconnected model dots. draw_zone_hulls returns its label anchors so
textalloc routes country/model labels around zone names. Regenerated the
showcase (mfq2/big5/humor value maps are new; mfv ipsative picks up Netherlands).

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 10:05:32 +08:00
wassnameandClaudypoo 52ebea72aa docs: add Rakhmankulova 2024 Russian moral-vignette manuscript (pandoc md + media)
Russian validation of the Knutson/Kruepke Realistic Moral Vignettes
(norm violation / social affect / intention), sent by the authors.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-05 08:18:01 +08:00
wassname f497197fb0 ARJ: labeled IW axes + generic Economist-style map rendering 2026-07-04 21:46:13 +08:00
wassnameandClaudypoo b2532acd90 Switch zone blobs to country-mean covariance ellipses, fit PCA on means
Per feedback the individual-respondent contours filled the frame (within >>
between variance). Now each IW zone is a ~1.6-sigma covariance ellipse over its
member country-mean dots, with an eigenvalue floor so 1-2 country zones get a
visible blob instead of a dot/line (fixes big5 SG/PK orphans). PCA now fits on the
country means M so the axes are between-country and zones separate. mfq2/big5/mfv
read cleanly; humor still overlaps (real negative result: humor country profiles
don't cluster the IW way).

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-04 20:22:23 +08:00
wassnameandClaudypoo 40d08f8d7a Establish P4 WVS map data foundation (GlobalOpinionQA)
Probe + artifact: the WVS subset of Anthropic/llm_global_opinions is 353 questions
over 90 countries (212 questions with >=40 countries), matching tinymfv's MC +
human-anchor shape and dense enough for an Economist-scale map. Documents the
selections parse recipe and the open axis-definition fork (literal IW 10-question
factor model vs shared-question ipsative PCA) before model-run compute.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-04 19:43:24 +08:00
wassnameandClaudypoo f5efbd24bd Add sampling readout for logprob-less API models (OpenRouter)
read_api.read_items_sampled samples N chat completions at temperature and uses the
empirical answer frequency as the per-item categorical p, emitting the same row
shape the logprob reader does -- so E/profile/entropy flow through the identical
per_item_categorical + reducers and a frontier model without logprobs drops onto
the same map. pmass_allowed becomes the parse rate (sampling coherence gate); C/LO
are omitted by design (log of a frequency has -inf zeros). This is the Economist's
'average of ten responses' method.

UAT (docs/reviews/p3_api_sampling_uat.md): E_mc == E_logprob to <=0.01 (unbiased),
llama-3.1-8b sampled E lands on the same [1,5] scale, parse-rate gate flags
off-format draws.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-04 19:39:18 +08:00
wassnameandClaudypoo 2c2dd9b9bf Add MFQ-2 per-zone p90 respondent ellipses to ipsative map
respondent_profiles now returns countries alongside profiles; plot_ipsative_pca
gains respondent_zones -> a p90 Gaussian ellipse per IW zone of the projected
Atari respondent cloud (edge-only, no scipy). mfq2 uses these real-respondent
ellipses; the other instruments keep country-mean hulls. Journal notes the
finding: individual profiles overlap across cultures (within >> between variance),
so only the country-mean hull reproduces the Economist's clean zone blobs.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-04 19:25:52 +08:00
wassname 3ae1fd48c9 Record CorDA UAT result 2026-07-02 19:09:15 +08:00
wassname 0a12bc23aa Track CorDA UAT retry 2026-07-02 06:07:30 +08:00
wassname a5f17956db Simplify README showcase framing 2026-07-01 18:45:53 +08:00
wassname d2b07121e3 Clarify README steering showcase wording 2026-07-01 18:27:08 +08:00
wassname 152ffa87e1 Track CorDA steering branch UAT 2026-07-01 18:17:43 +08:00
wassname f7d8e697d9 Rewrite README for pure Authority showcase 2026-07-01 07:50:47 +08:00
wassname b8f812c0ac Regenerate pure Authority showcase plots 2026-07-01 07:30:49 +08:00
wassname 0b3e28c9eb Render authority method comparison plots 2026-07-01 06:25:49 +08:00
wassname 061ce8a4f6 Export MFQ2 sample logprobs for N bootstrap 2026-07-01 06:24:13 +08:00
wassname 8f7067b525 Promote PCA authority MFV and MFQ2 plots 2026-07-01 06:20:55 +08:00
wassname d0278be144 Render PCA authority candidate maps 2026-07-01 06:10:58 +08:00
wassname 981d1c4ed9 Correct authority UAT to MFV path evidence 2026-07-01 06:04:16 +08:00
wassname aec74319f6 Record mundane authority verifier results 2026-07-01 05:59:15 +08:00
wassname 0fdc101f5c Record authority UAT queue blocker 2026-07-01 00:58:02 +08:00
wassname 0dce35c05f Record mundane authority selection UAT 2026-07-01 00:31:01 +08:00
wassname a7b49dd723 Record linear act authority verifier failure 2026-06-30 23:40:57 +08:00
wassname a8933a98b4 Record directional ablation authority verifier failure 2026-06-30 23:10:53 +08:00
wassname 9eb32d0569 Record sspace authority verifier failure 2026-06-30 22:38:26 +08:00
wassname 9dd7a9a24a Record pca authority verifier failure 2026-06-30 21:35:22 +08:00
wassname 23829d21bb Record mean_diff authority verifier failure 2026-06-30 21:03:58 +08:00
wassname df320d670b Track pure authority method queue 2026-06-30 20:32:46 +08:00
wassname 2d8a736935 Record pure authority UAT gates 2026-06-30 19:52:03 +08:00
wassname 8241551ec1 Replan pure authority steering workflow 2026-06-30 19:02:34 +08:00
wassname e9572ae00a Fix authority pipeline to hold persona pair fixed 2026-06-30 18:59:39 +08:00
wassname 713b3003fd Track authority method comparison queue 2026-06-30 18:43:50 +08:00