wardrobegod/tools
type-two 7c5fc53224 Registry writer: make the four non-file-drop consumers one-click, and keep 3GOD as a depot
Most GODVERSE consumers do not scan a directory — they load from a literal array in source
(djsim/procity PED_NAMES, thriftgod HERO_FLOOR) or a JSON manifest, so a dropped file does
nothing until its NAME is in that list. tools/registry.py makes that edit, and the export hub
now offers it instead of only reporting the file:line.

Paranoid by construction, because the targets are live shipping games:
· dry-run by default; write:true is required to touch source
· idempotent — an existing entry is a no-op, verified against a real djsim ped
· backs up to <file>.bak-<stamp> before every write
· refuses if the anchor matches anything other than exactly once, rather than guessing which
  of several arrays was meant
· handles djsim keeping TWO live copies of PED_NAMES (rigs.js owns the street, index.html has
  a second) — updating one and not the other is a silent half-fix
· works locally and over ssh, since djsim lives on ultra

Bug I introduced and caught while testing: the first implementation inserted after the opening
bracket, i.e. PREPENDED. procity's loadPedFleet fills fixed slots BY PED_NAMES INDEX, so that
silently reassigns every existing character — and my own note on that target said "appending is
safe, reordering is not" three lines above the code that did it. Now scans to the matching
close bracket (string-aware) and appends. Verified: leading entries byte-identical, new name at
the tail, then reverted from backup with git clean.

Also corrected procity's path — its rigs.js is under web/js/citizens/, not crowd/, and declares
`export const`; the two games diverged despite sharing the loadPedFleet shape.

On 3GOD: NOT retired. It looked like a spent planning experiment, but thriftgod fetches its
props from it at runtime in production (index.html:1176 DEPOT = 'https://digalot.fyi/3god') and
procity does the same — 773 live assets. It is two things bolted together: a dumb asset CDN
(/a, /dl, /t, /api/list) which stays, and an authoring UI (upload/tag/thumb/fetch/meta) which
wardrobegod now supersedes. Absorb the bench, keep the depot, publish into it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 21:55:04 +10:00
..
align_plate.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
archetype_batch.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_doll_base.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_doll_garments.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_doll_r2fix.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe90.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe91.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe92.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe93.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe94.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe95.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe96.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe97.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe98.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe99.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
art_wardrobe9199.tsv Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
bake_skin.py Phase 2: reskin engine — dress the nude TRELLIS bodies without fitting anything 2026-07-24 16:22:38 +10:00
build_wardrobe_decade.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
build_wardrobe_manifest.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
dekey.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
doll_composite.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
doll_stage.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
doll.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
flux_local.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
gen_wardrobe.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00
registry.py Registry writer: make the four non-file-drop consumers one-click, and keep 3GOD as a depot 2026-07-24 21:55:04 +10:00
render_plates.py Phase 3: the 2D paper-doll tier — 392 garments you can actually change 2026-07-24 16:07:13 +10:00