clanker / docs /ROADMAP.md
deucebucket's picture
Upload folder using huggingface_hub
9564947 verified
|
Raw
History Blame Contribute Delete
10.8 kB

Clanker β€” Roadmap

The first VADUGWI project. A community-cared creature with persistent memory and emotion whose purpose is to make the 7-dimensional VADUGWI state visible, audible, and explainable in real time β€” and to log real usage so the VADUGWI formulas can be audited and improved. The pet is the vehicle; showing off VADUGWI is the point.

Framing: this is a SHOWROOM FLOOR

The whole UI is a showroom for the VADUGWI engine β€” every mechanic is on demonstrative display, not hidden behind a cute pet. The visitor should see the machine work: the raw read, how the soul's VADUGWI governs how much new emotion it accepts (resilience/armor), the mood that results, and how words/actions have shaped the soul over time. The pet is the exhibit; the engine is the product.

Governing principle (HARD RULE)

VADUGWI drives everything β€” full stop. Every feature, mechanic, toy, care action, animation, sound, and bit of GFX must read from or write to the VADUGWI state. Nothing is cosmetic-only; nothing is faked. If a proposed addition can't be tied to a concrete VADUGWI cause or effect, it does not ship. The creature's every behavior must trace back to real engine math β€” and that trace must be loggable for the audit flywheel below.

Why this matters (the flywheel)

People talk to the creature β†’ clanker-lang scores it β†’ clanker-soul accumulates mood β†’ the creature shows exactly why it feels how it feels (words detected, roles, structures, per-dimension contributions). Every interaction is logged (input + full VADUGWI + trace). That corpus lets us audit the engine against real-world language β€” find cases that read neutral but shouldn't, miscalibrated dimensions, blind spots β€” and feed fixes back into the formulas. The pet is a continuous, free, real-world evaluation harness with a face.

Current status (Phase 1, shipped 2026-06-15)

Live at huggingface.co/spaces/deucebucket/clanker (Docker Space, FastAPI + vanilla JS, no model β€” simlish voice via browser Web Speech, one shared global SQLite soul). Known gap that M1 fixes: the engine works (VADUGWI moves on every message) but the showcase is buried β€” color/face/word are bucketed into only 5 discrete regions so small talk looks frozen; the numbers hide in one drawer; and the trace (what it detected) is discarded entirely (scorer.py drops it). A placeholder "guest" chip clutters the corner. GFX read as rough-draft; the room is empty.

Locked decisions

  • Build order: M1 (showcase core) first.
  • Audit/data store: a private HF Dataset repo β€” every interaction appended (input text, full VADUGWI, trace, care/context, timestamp). Durable, survives rebuilds, easy to pull for analysis.
  • Identity: anonymous-first; HF login optional (unlocks being remembered + care credit). Maximizes community reach.
  • No language model, ever. Voice = simlish + emoticons via browser Web Speech ($0).
  • One shared global creature, permanent state, community-shaped.

M1 β€” Make VADUGWI visible + auditable (the fix + the point)

The current Space's defect and the showcase, together.

  • Continuous appearance β€” color/posture interpolate smoothly across the VADUGWI space instead of snapping between 5 buckets, so every message visibly moves the creature.
  • Live 7-dim HUD β€” all of V A D U G W I on screen as labeled meters, each showing its current value AND the per-message delta (e.g. W βˆ’6). Always visible, not hidden.
  • "What it detected" panel β€” surface the discarded trace: the words that fired, their roles (SELF_REF, EMOTIONAL, NEGATOR, AMPLIFIER, …), structures detected, and each dimension's contributors. This is the explainability no neural pet can do.
  • "Why it feels this way" β€” current mood = soul baseline + recent interactions, shown as readable contributions.
  • Surface the raw per-message read (undamped) next to the slow soul mood, so the engine's reactivity is obvious even when the soul moves slowly.
  • Resilience/acceptance display β€” show how the soul's armor (from its W/D) absorbed part of each incoming read (absorbed_pct), so the readβ†’mood gap is explained, not mysterious.
  • Soul-over-time β€” a timeline of how words/actions shaped the soul across the creature's life (from the event log); full historical persistence is M2.
  • Born flimsy β€” a newborn soul has low W/D + near-zero resilience, so it swings hard on every message (resilience is earned later, see M3). Reset the live creature to baby.
  • Log unknown words / suspected vocab gaps as first-class audit rows (Jerry's priority).
  • Richer mood vocabulary β€” many more mood words than the current 5.
  • Remove the mystery box (the placeholder identity chip).
  • Audit logging β€” append every interaction to the private HF Dataset.
  • First GFX pass β€” adopt the Hugging Face mascot look (recolorable vector, faithful silhouette, resting yellow β‰ˆ neutral; color/face/hands driven by VADUGWI), more shine/depth, and a less-empty room (full polish + ambient mascot behaviors are M4).
  • Surface the trace at the source β€” scorer.py must keep compute_vadug's trace, not drop it; expose it through /say.
  • Success: a visitor sends any message and immediately sees numbers move, the words it reacted to, and why β€” and that interaction lands in the audit dataset.

M2 β€” Persistence βœ… DONE (2026-06-15)

  • Soul survives Space rebuilds via free HF Dataset snapshot/restore (chose this over paid persistent storage): on boot, pull the latest soul.db from a private dataset before opening it; after interactions, snapshot back β€” throttled (≀1/120s), background, fail-soft. Audit log already snapshots to its own dataset. (app/persistence.py.)
  • Activation (one-time, Jerry): create private dataset deucebucket/clanker-soul-state
    • ensure the Space has the HF_TOKEN secret. Until then it's a fail-soft no-op.
  • Identity deferred β†’ see M2.5.

M2.5 β€” Identity βœ… DONE (2026-06-15) β€” RECOGNITION-ONLY, privacy-first (docs/PRIVACY.md)

  • HF OAuth login (optional; anonymous-first β€” everything works logged-out). hf_oauth: true in README; authlib OIDC flow (/login,/auth/callback,/logout,/me); signed session.
  • On login, the OIDC sub is sha256-hashed into the session β€” raw username NEVER stored or shown. RecognitionStore (in the soul db, so it persists via M2) tracks first-seen/visits per hash; /say returns recognition only when signed in; the creature welcomes returnees.
  • /me returns only {signed_in: bool}. SESSION_SECRET set as a Space secret.
  • Final check (Jerry): click "sign in", authorize, confirm it recognizes you on return β€” the logged-in round-trip needs a human HF login to fully validate.
  • Foundation for M3's per-user relational memory (affinity VADUGWI + flashbulb).

M3 β€” Tamagotchi care + relational memory + Moments βœ… DONE (2026-06-15)

  • Care loop (app/care.py): feed/play/pet fill needs (hunger/energy/attention) and each ingests a positive VADUGWI Score; needs decay over time; sustained neglect ingests a mild negative Score (floored β€” always recoverable). POST /care; needs in every state.
  • Resilience growth (earned) (soul_bridge): effective dim_resilience_max rises with lifetime event count (0.08 baby β†’ ~0.5 mature), applied live; persists via M2. maturity().
  • Relational memory (app/relation.py): per hashed-uid affinity EMA + flashbulb (vectors+mood word+ts, NO raw text); signed-in users get re-felt on return (recall once/ session); privacy-clean (no usernames).
  • Moments diary (app/moments.py): notable() flags breakdown/breach/elation/wound/ breakthrough; captured in /say; GET /moments (snapshots = vectors, no text).
  • UI: care buttons + needs bars + Moments panel + "remembers you" hint (no usernames).
  • All in the soul SQLite db β†’ persisted by M2's snapshot.
  • Community-shared "who cared for it" surfacing deferred to M5 (economy/governance).

M4 β€” Toys, world, physics, fluid animation, full GFX βœ… DONE (2026-06-15)

  • Toys (app/toys.py, POST /toy): 5 momentary VADUGWI stimuli β€” balloon (high-arousal delight), musicbox (positive valence at LOW arousal+urgency), mirror (self-Worth), teddy (comfort/grounding), rattle (Urgency spike β€” the dimension chat/care never reach). Each ingests an absolute-target Score into the one shared soul; audit-logged like chat.
  • In-browser physics + fluid animation (static/physics.js pulse engine + app.js loop): a requestAnimationFrame loop drives spring-damped squish (impulse on every response, sized by |VADUGWI deltas|) and continuous breathing (rate+depth from arousal). Writes to a #blob-anim wrapper so it never fights renderBlob's per-message transform.
  • Mascot behaviors β€” idle FSM behaviorFor(mood): sleep (arousal+urgency both low β†’ eyes close, Zzz, slow deep breath), calm, idle, roam (drifts across the floor at moderate arousal), excited (fast bounce at high arousal). All derived purely from the live mood.
  • GFX: 5 codex-generated transparent toy sprites adopted into the tray.
  • Shipped & verified live on deucebucket/clanker (/toy returns moving deltas; Playwright video confirms breathing/squish/sleep/roam; rattle shows U=210 in the read panel).
  • Community-shared world decor / care economy deferred to M5.

M5 β€” Community economy & governance (exploratory / eventual)

  • Caring actions (cleaning up after it, feeding, play, attention) earn a soft care currency.
  • Spend it on toys, cosmetics, room decor (feeds M4's world).
  • Voting / governance β€” the community votes on decisions: its name, direction, what it gets, possibly moderation of cruelty.
  • Default to a soft in-app currency (points), not real money β€” real payments add legal, payment-processing, and regulatory weight; revisit a real economy only if explicitly wanted.
  • Success: caring is rewarded, and the community collectively steers the creature.

Cross-cutting

  • W-dimension seam between clanker-lang and clanker-soul β€” verify W flows correctly before leaning on Worth for care/neglect mechanics (known organism-stack issue).
  • GFX improves incrementally each milestone; M4 is the final pass. Image assets (creature, room, toys β€” transparent PNGs, etc.) are generated via codex (GPT image generation), which writes them wherever needed.
  • Audit-first mindset β€” anything that affects VADUGWI (chat, care, toys) gets logged with its trace, so the whole creature is one big evaluation instrument.