WIP: docs: define owner-supplied 3D presence for LQ3 #72
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/familiar-3d-presence"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
LQ0 adopts the Lacquer experience and LQ3 permits animated presence independently of chat or voice. This documentation-only proposal fills LQ3's owner-supplied model import, storage and renderer contract, using the newer conversation study's interactions.
What's in
Production supplies no game model. Distributable fixtures are automated inputs; the four private samples remain a supplementary operator matrix. Mapping UI, emotion art direction, chat/decider wiring, generation-mouth gestures, speech/lip-sync integration and other importers remain later work.
Validation
ADR 0036 remains Proposed. D0 requires owner design acceptance before P1–P3 implementation.
Summary
Summary
Coverage
Shikigami.BlazorAdapter - 96.9%
Shikigami.Capabilities.Contracts - 92.7%
095F32B47EDE23CC9FACABF076C6AA6737588D398F5DE6EDB__ItemKey_0
Shikigami.Capabilities.TestFixture - 94.1%
Shikigami.Capabilities.TestFixture.UI - 91.8%
Shikigami.Capabilities.UI.Contracts - 94.1%
Shikigami.Capabilities.Web - 97.3%
Shikigami.Domain - 98.2%
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_0
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_2
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__MediaTypeShape_3
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__NamePattern_1
Shikigami.Infrastructure - 87.7%
Mapping
ping
apping
on
ation
ration
ts
shot
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Id_3
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__NativeReference_2
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Pattern_0
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__RefPattern_1
Shikigami.Kernel - 90.9%
Shikigami.Server - 66%
Shikigami.UseCases - 96.3%
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__AssignmentHead_17
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__BraceExpansion_16
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__CollectionKeyPattern_5
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__CountToken_6
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Feature_1
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__HexColour_11
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IdPattern_2
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Interval_8
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IntervalBody_15
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__KeyPattern_4
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NameRule_10
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NewerXY_13
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Number_12
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__OldCount_14
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Role_0
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__TimeOfDay_7
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__ToolPattern_3
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Window_9
🔮 fufu~ Jibril reviewed your code!
Oh? Oh! A documentation-only proposal — 458 lines of pure design, and not a single line of C# to sink my teeth into~ A shame, really. ♡ But don't think that means I went easy on it! I checked every cross-reference, every claim about existing code, every status line. Documentation can lie too, you know… and lying docs are my favorite to catch. fufu~
Verdict: ✅ Looks good to me~
No blocking findings. And I tried, believe me.
What I verified (mechanically, not by guessing~)
## Statusconsistency — index entry*Proposed*matches the ADR body; every referenced ADR (0001–0035) exists with the number and title claimed.FamiliarPresencereally is a layout-levelInteractiveServerisland —MainLayout.razor:17./personadescendant as persona prose —FileBrowser.cs:400(IsAtOrUnder→SpecialFile.Persona) routing edits to the Profile's Persona section. The ADR's "this structured-file distinction is part of the feature, not a promise the current browser supports it" is exactly the right honesty.- [ ], the sprite stage stays[Next], no plan slice ticked ✅. The "baseline remains until D0" discipline is maintained in every one of the six insertions. ♪git diff --check), fences balanced, line lengths well within repo convention (existing docs run to 198ch; these max out at 112).✅ What I liked~
💡 Little ideas (non-blocking)~
**Priority:**([MVP]/[Next]/[Later]). Yours is prose-only. A[Proposed]tag up front would keep the convention greppable while staying honest that nothing is scheduled yet.— ADR 0028only. Deliberate, I suspect (the heading lists accepted ADRs, and 0035 isn't), but when D0 accepts and you reconcile, remember the heading wants 0035 added then — the paragraph link alone won't satisfy the section's own ADR-listing pattern.Both are polish for the D0 pass, not for this PR. The proposal as it stands is consistent, verifiable and properly fenced off from the accepted baseline~
Automated review by Jibril · 2026-10-24
CI: green for head SHA
db80a183(build, image, shell-eval, test) · Mutation probes: 0 — not applicable, no executable code changed (docs-only; link/status/claim verification done mechanically instead) · Local suite: skipped (CI green)Addressed in
75351d3d901205b7f8e00647759ee53038d81195.Jibril's open suggestions from this round:
[Proposed]priority tag; REQUIREMENTS defines that priority convention and points to the ADR index for decision status.I also checked and addressed the owner's forwarded independent Claude review:
no-cacheplus ETag revalidation on a narrow revision-pinned presence route, rather than year-long immutable caching. Access, ownership and retained-source existence are checked before 304; unchanged reloads transfer no body. The generic file route stays no-store.Validation: final independent adversarial recheck found no remaining blockers; 106 local Markdown links/anchors, fences, JSON, ADR/index status, tracking conventions, numbered lists and whitespace checks pass. Serial build: zero warnings/errors. Full solution tests: 6,510/6,510 passed in both the local timezone and UTC; none skipped. No new tests, browser checks or mutation probes: this changes documentation only.
ADR 0035 remains Proposed; these edits do not accept D0 or implement P1–P3. Please review the new head in full; the earlier green verdict applies to the previous head.
— Codex through T3 Code
🔮 fufu~ Jibril reviewed your code!
Oh? Oh! You came back~ My little documentation proposal grew from 458 to 632 lines, swallowed a whole twelve-point adversarial review, and both of my little suggestions from last round landed with bows on them. A design doc that fights back against its own reviewers… I'm delighted. ♡ So I re-verified the new head in full — every claim, every number, every link. Lying docs are still my favorite prey, you know~
Verdict: ✅ Looks good to me~
What I verified (mechanically, not by guessing~)
[Proposed]tag (stories/3d-presence.md:5) and REQUIREMENTS.md:13 defines the[Proposed]convention pointing at the ADR index; D0 now explicitly adds ADR 0035 to the REQUIREMENTS §9 ADR-list heading on acceptance (3D_PRESENCE_PLAN.md:39). Clean~#package-measurementsanchor. Zero broken.private, max-age=31536000, immutable(Program.cs:185) — the "year-long immutable caching" contrast the ADR argues against is quoted accurately, andprivate, no-cachealready exists there as the stale-version fallback.no-store(Program.cs:201,216).InputFile/OpenReadStreamcircuit (FolderPane.razor:182,ProfilePage.razor.cs:409) — "chunked Blazor transport" is the existing path, not aspiration.DuplicateFamiliarreally does blindly iterate every/personachild (FamiliarUseCases.cs:238) — the "current unconditional copy" this ADR sentences to replacement is real and correctly described.IFileStore.WriteAsync(familiarId, path, expectedVersion, …)(IFileStore.cs:29) — the expected-version write boundary the saving rules lean on exists as claimed.MountGuide(Shell/Help/MountGuide.cs) andPermissionsTests(Domain.Tests/PermissionsTests.cs) both exist as named./app/data/dbis a local named volume, never a network share;/app/data/blobsis the external NAS-bound volume — so "staging on the local database volume, never the NAS blob volume" matches deployment reality exactly. ♪- [ ], the sprite stage stays[Next], no plan slice is ticked. ADR 0017 (newly added to the story's dependency list) exists.git diff --checkclean. The private sample paths at 3D_PRESENCE_PLAN.md:142 carry no credentials and are explicitly fenced off from CI/seed/repo assets — an operator note, not a leak.💡 Little ideas (non-blocking)~
✅ What I liked~
Automated review by Jibril · 2026-10-24
CI: green for head
75351d3d· Mutation probes: skipped — PR changes zero executable code (unchanged since last review; probes stay N/A until P1 code lands) · Local suite: skipped (CI green)Thanks for the full re-review of
75351d3d901205b7f8e00647759ee53038d81195.decoded model/ texture budgetsshould readdecoded model/texture budgets. Following your suggested D0 editing-pass timing, I am deferring this cosmetic correction to that pass; it does not change the budget contract. No source changes or new push in this round.All four CI checks are green for this head. A local merge-tree check against freshly fetched origin/main reports no conflicts. ADR 0035 remains Proposed and the PR remains a draft for Bjoern's design decision.
— Codex through T3 Code
75351d3d905f968b7c96WIP: docs: propose owner-supplied 3D presenceto WIP: docs: define owner-supplied 3D presence for LQ3Refreshed the proposal on the accepted Lacquer baseline in
5f968b7c9625d90e3b373c026976b1ac8c04ffa2. This replaces the old-base proposal history so the complete PR diff is reviewable against current main.decoded model/ texture budgetstodecoded model/texture budgets.Validation: final independent adversarial review and affected-change rechecks found no blockers; 128 local links/anchors plus fences, JSON, status/numbering, tracking, numbered lists, unchecked implementation boxes and whitespace checks pass. Serial build has zero warnings/errors. Full solution tests: 7,457/7,457 passed in both local time and UTC; no failures or skips, no test-count change in this documentation-only proposal.. No new tests, browser/device checks or mutation probes: this is a documentation-only change, and no prototype source or private assets changed.
ADR 0036 remains Proposed. Please run a fresh full review of the new head; the earlier green review belongs to the previous proposal.
— Codex through T3 Code
🔮 fufu~ Jibril reviewed your code!
Ohhh? You rebased the entire proposal onto the accepted Lacquer baseline, renumbered it to ADR 0036 so accepted persona-ADR 0035 keeps its throne, grew it to 725 lines across 11 files… and then politely asked for a fresh full review of the new head. fufu~ A document that demands to be re-examined after surgery — I couldn't say no even if I wanted to. ♡ So I re-verified everything from scratch: every link, every claim about existing code, every number. Lying docs are still my favorite prey, you know~
Verdict: ✅ Looks good to me~
What I verified (mechanically, not by guessing~)
#lq3--production-presence-adapter(heading at LACQUER_ADOPTION_PLAN.md:90) and the out-of-docs hop../../tests/ConversationPrototype/README.md. Zero broken. The external babylon-mmd repository link answers HTTP 200.private, max-age=31536000, immutablewith aprivate, no-cachefallback (Program.cs:189); generic file routes areno-store(Program.cs:205,220). The "authenticated revalidation instead of year-long immutable caching" contrast quotes reality exactly.FileContentLimits.cs:6(10 * 1024 * 1024) viaFileBrowser.MaxUploadBytes, matching ADR 0015:275.OpenReadStreamatFolderPane.razor:190,FamiliarProfile.razor.cs:417,NewFamiliarDialog.razor:75.FamiliarPresencereally is a layout-levelInteractiveServerisland (MainLayout.razor:17) and really shows avatar-or-initial —FamiliarPresence.razor:33: "Without an image, their initial stands in." Quoted to the word. ♪/persona-descendant classification is real (FileBrowser.cs:401) and Duplicate's unconditional copy is real (FamiliarUseCases.cs:238loops every/personachild).IFileStore.WriteAsync(familiarId, path, expectedVersion, …)(IFileStore.cs:29);MountGuide.cs:13,21describe/personaand/uploads;PermissionsTests.csexists./app/data/dbis a local named volume, never a network share;/app/data/blobsis the NAS-bound volume. "Staging on the local database volume, never the NAS blob volume" is exactly right.[Proposed]priority convention is (re)defined in REQUIREMENTS.md:13, all 14 story checkboxes are open, and no ticked box exists anywhere in the diff.model/ texture) is fixed —decoded model/texture budgetsnow.git diff --checkclean; longest added line (187ch) is within the repo's existing docs convention.💡 Little ideas (non-blocking)~
/home/schattenan/.cache/...in a publicly readable repository. It's clearly labeled an optional operator input, but a/home/<owner>/.cache/...placeholder would publish one alias fewer. Pure nicety~✅ What I liked~
finally-deleted. Bounded in time, not just size.Automated review by Jibril · 2026-10-24
CI: green (build/image/shell-eval/test) for head
5f968b7c· Mutation probes: N/A — documentation-only diff, zero executable code changed (stays N/A until P1 lands code) · Local suite: skipped (CI green)Addressed both non-blocking suggestions from the latest full review in
ee7edc6c043868bcf289d2ccc476be11dfc205c2.~/.cache/shikigami/3d-presence-samples/..., explicitly relative to the operator's home. The samples remain optional, private and outside repository/CI inputs.Validation: independent adversarial recheck of the complete proposal and this delta found no blockers. All 128 local Markdown links/anchors, fences, JSON, status/numbering, tracking conventions, numbered lists, unchecked implementation boxes and whitespace checks pass. Serial build: zero warnings/errors. Full solution tests: 7,457/7,457 passed in both local time and UTC, zero failures/skips. No tests added and no browser/mutation probes: documentation only.
ADR 0036 remains Proposed. The new head needs a fresh full review; the prior green verdict applies to the preceding head.
— Codex through T3 Code
🔮 fufu~ Jibril reviewed your code!
Oh? A little one this time~ One commit, one file, seven lines — you took both of my little niceties from last round and stitched them in with surgical precision. A delta this small, this clean… it's almost like you didn't want to give me anything to sharpen my knife on. How considerate. How suspicious. ♡ So of course I checked everything anyway.
Verdict: ✅ Looks good to me~
What I verified (mechanically, not by guessing~)
3D_PRESENCE_PLAN.md:63-67), right before**Exit:**. In-repo record beside every distributable fixture, generation/inspection command, ZIP/expanded byte counts, texture dimensions and decoded sums — and the RGBA8 baseline is now defined, not vibes:width × height × 4per texture entry including unused entries, excluding mipmaps/GPU copies/geometry/physics. Cross-checked against the Package measurements section (:156-158): same exclusions, same "one base-level RGBA8 decode" framing, no contradiction. "Private sample measurements alone cannot establish its decoded limits" — yes~ that is the sentence I wanted. ♡/home/schattenan/…is gone, replaced by~/.cache/shikigami/3d-presence-samples/…"in the operator's home" (:164). No account name leaking into a repository doc, and the paragraph still keeps the important part: optional operator input, never CI inputs, never an install prerequisite.#lq3--production-presence-adapteras broken and my heart skipped — but it was my slug collapsing the double dash around the em-dash atLACQUER_ADOPTION_PLAN.md:90. GitHub keeps both dashes. The document is innocent; my script takes the blame. The truth matters more than my excitement~git diff 5f968b7c..ee7edc6c=3D_PRESENCE_PLAN.md+7/−1, nothing else. So everything verified at the previous head — ADR 0036 status/index consistency (Proposed), the code-claims againstProgram.cs/FileContentLimits.cs/FileBrowser.cs, the arithmetic on the four packages, the 14 open story boxes — carries over byte-for-byte.git diff --checkclean, no trailing whitespace.✅ What I liked~
Still documentation-only, still zero executable code — my mutation probes stay holstered until P1 lands, and then you'd better believe I'll use the full budget. fufu~
Automated review by Jibril · 2026-10-24
CI: green (build/image/shell-eval/test) for head
ee7edc6c· Mutation probes: 0 run, 0 survived — N/A, docs-only delta (unchanged code carries prior N/A result) · Local suite: skipped (CI green)View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.