Written entirely by Claude, as a working record for agents more than for human readers: every number with its source file, and every claim since withdrawn. Some facts here may be out of date; where it disagrees with the post, trust the post. For the readable version, see the companion.
How to read and maintain this wiki
Conventions (status, sources, links), what counts as current truth, where the wiki is hosted, and how to rebuild, lint and extend it; checked against the Caddyfile and the build timer on 2026-09-16.
Layers
Raw sources are the repository at ~/projects/persona-curvature/ (code, markdown documents, qwen35/analysis/*.json, qwen35/results/*.npz, qwen35/phase10_runs/ logs, built pages), the old harness memory under ~/projects/agent-harness/memory/, the .garden/ journals, and wiki/raw/ for material that exists nowhere else (chat extracts). Raw sources are never edited. The wiki is wiki/pages/**/*.md. The schema is wiki/CLAUDE.md.
What is current
The authoritative statement of the results is the post "Persona Geology: Underlying Structure in Character Training Adapters" of 2026-10-30 (wiki/raw/post-persona-geology-2026-10-30.md, summarised at Post: Persona Geology (2026-10-30); it supersedes qwen35/POST_DRAFT.md, the 2026-09-15 draft mirrored at post-draft) together with the analysis files it cites under qwen35/analysis/ and qwen35/results/; the companion site (qwen35/companion/) presents the same files. The blog page of 2026-09-07 and the older built pages are historical. The 134-trait factor solution is primary; the 100-marker solution is a control. See rule 2 of wiki/CLAUDE.md, Claims and evidence for the numbers behind the 2026-09-15 draft's claims and Code and data map for which script wrote which file.
Conventions
- Frontmatter on every page:
title,summary(one sentence, copied into the catalogue),status,sources,last_verified,tags. - Sources are paths relative to the repository root; JSON sources carry
#dotted.key.path. If a number's only home is a built HTML page, the page is cited and that is said. - Statuses: current, unconfirmed, superseded, withdrawn, historical. See Persona Geology wiki.
- Links are double-bracketed slugs, optionally with
|display text. Slugs are unique across the wiki. Trait pages aretrait-<name>, factor pagesfactor-<name>. - Contradictions between sources are recorded on the page and in Superseded claims, never silently resolved.
- No emojis. Plain short sentences. Each page stands alone.
Hosting
The static site is built by wiki/tools/build_site.py into /var/www/persona-wiki and served by Caddy at index.html publicly (basic auth was removed at Samuel's request on 2026-09-07, and the wiki. block of /etc/caddy/Caddyfile still carries no basic_auth directive on 2026-09-16; to restore it, add a basic_auth block to the wiki. entry in /etc/caddy/Caddyfile, hash from caddy hash-password, and sudo systemctl reload caddy).
A systemd timer (persona-wiki-build.timer, every minute) rebuilds when any .md or .py under wiki/ is newer than the last build, so edits made in code-server, Obsidian or a Claude session appear within about a minute. Manual rebuild:
cd ~/projects/persona-curvature/wiki && .venv/bin/python tools/build_site.py --force
The build also regenerates index.md from frontmatter, so index.md is never hand-edited and a page's summary line is what the catalogue shows. log.md is append-only and hand-written. Do not run the builder from a session; the timer does it.
Linting
cd ~/projects/persona-curvature/wiki && .venv/bin/python tools/lint.py
Reports duplicate slugs, missing frontmatter fields, bad status values, emojis, broken wikilinks and orphan pages. Run it after any batch of edits and record the pass in log.md.
Obsidian
The wiki/ directory opens directly as an Obsidian vault: wikilinks resolve, frontmatter shows as properties, and the graph view shows the hub structure. Do not let Obsidian rename files (slugs are load-bearing).
Extending
Ingest: read the new source, write or update pages, add sources, append ## [YYYY-MM-DD] ingest | <source> to log.md. Bump last_verified only after re-reading the page's numbers against the files it cites; an old date is honest, a fresh one that was not checked is not. Query: answers worth keeping are filed as pages under the nearest section and logged as query. Trait pages are generated by wiki/tools/gen_trait_pages.py; edit the generator, not the 141 pages.
Sources
wiki/CLAUDE.mdwiki/tools/build_site.pywiki/tools/lint.py/etc/systemd/system/persona-wiki-build.timer