DRAKIMACORE // ENGINEERING HANDBOOK

Where a change belongs

Find the source owner and contracts for each feature.

Reviewed 2026-11-07 · Public chapters

Ask Akari about this chapter
Source: docs/current/feature-map.md Download Markdown

Trace a user action from its web controller or browser module into its application owner before editing. Folder names alone do not prove ownership: Runtime deliberately compiles several root source trees.

Capability Primary source locations Contract to preserve
Public catalog, discovery, profiles src/DrakimaCore.Public.Web, Services/Discovery Publication and audience filters; bounded queries
Staff CMS and release review src/DrakimaCore.Studio.Web/Areas/Admin, Services/Editorial Draft/review/approval/publish lifecycle and assignments
Page builder Phase 0 study Studio PageBuilderPrototypeController, wwwroot/js/page-builder-prototype, docs/design/studio-page-builder Disposable public-copy fixtures; staff entry; no server drafts or publication writes; see Phase 0
Persistent page drafts Domain/Application Pages, Runtime-linked Infrastructure/Pages, Core Models/Pages and Studio PagesController Conditional immutable checkpoints, exact candidate bindings, current editorial assignments and protected page images; authoring and public serving have independent switches
Saved page rendering and previews Application PageRenderer, Runtime PageMarkdown / PublicPageSources, Studio PagePreviewsController, Web.Shared Views/Shared/Pages and page-content CSS/JS Exact retained revision/hash; authenticated private previews; existing catalog eligibility; shared component markup; admitted public releases use the same renderer
Visual page authoring Domain PageTemplates, Studio PagesController, Views/Pages, wwwroot/js/page-editor and page-editor CSS Current author assignment and optional Admin pilot; serialized conditional saves, explicit local recovery, private owned images, exact saved preview and opt-in Admin numeric editor measurements
Page releases and recovery Application PagePublicationChecks / PagePublicDelivery, focused Core page adapters, Studio release panel and Public SitePagesController Exact revision/path approval, conditional atomic activation and outbox, retained release rollback, restore to a new draft, withdrawal/archive/export; default-closed Public serving; read-only approved-release views and guarded images
Existing Home and Site Guide conversion Domain PageSurfaceRegistry, Application PageSurfaceBaselines / PageSurfaceDelivery, focused route-mode adapter, Public HomeController / PageSurfaceMediaController, shared native page presentations Explicit one-time private import and provenance; fixed routes; Legacy/Builder/Unavailable modes; per-route admission; no implicit fallback; existing catalog/account/welcome owners; see conversion guide
Page menus, discovery and Akari Application PagePublicCatalog / PageAuthoredText / PageProjectionDispatcher, focused catalog/outbox adapters, discovery snapshot owner, shared PageNavigation, Studio release panel, Akari projection/context/retrieval Explicit menu references; release metadata and bounded discovery; current render/dependency admission; deterministic prose/current-owner links; leased event retries and lag diagnostics; stale page evidence withheld
Page operations and maintenance Application PageOperations / PageCheckpointRetention / PageMaintenance / PageDiagnostics, focused Core operations adapter and writer barrier, private image inventory/quarantine, Studio operations/maintenance controllers, Web.Shared response timing filter Admin reports and complete owned-image verification; constrained per-checkpoint pruning with immutable transaction receipts; recoverable orphan quarantine and grace-gated final removal under writer exclusion; mutation defaults closed
Private Gynoid conversations src/DrakimaCore.GynoidConversations.Application, src/DrakimaCore.GynoidConversations.Infrastructure, src/DrakimaCore.GynoidConversations.Web Account-owned sessions, full selected history, idempotent operations
Character identity and room presentation Services/Gynoids, Content/Gynoids, shared webroot manifests Explicit identity/outfit defaults; immutable retained releases
Akari guidance, retrieval, support Services/Akari, Composition Audience-filtered sources and separate role/context budgets
AI transport and planning src/DrakimaCore.Infrastructure, src/DrakimaCore.Application, Runtime adapters Cancellation, provider limits, bounded admission
Interview Studio src/DrakimaCore.InterviewStudio.Web, application/infrastructure InterviewStudio folders Curriculum and adaptive session ownership
VN Maker and published VNs Studio/Public Web, Services/VisualNovel, Application visual-novel contracts Draft versus immutable release; explicit AI bridge
Drakima Arcade Application/Infrastructure Arcade, Composition/DrakimaArcadeComposition, Public ArcadeController Published local quartet, independent visibility allowlist, permanent campaign ownership, predecessor completion, exact owned run/checkpoint and reward evidence; preserve retained pins; see Arcade
Valkyrie player assistance and controllers Public Web visual-novel/battle-assistance.js, console-gamepad.js, active-battle-player.js Device preferences use existing pause/command protocols; no client-owned outcomes; see development program
Credits and payments src/DrakimaCore.Credits, Infrastructure/Credits, commerce services Stable ledger keys, one settlement, retained financial history
Public Store Public Commerce StoreController, Views/Store, store.css, CommerceCatalogService /Store lists active priced credit plans and published purchasable albums; existing cart/checkout and album owners retain purchase authority
Media discussion and community Services/Videos, Services/Community, Public Media/Journal/Novels controllers Published description, public cast/lore and linked lyrics; bounded source context; complete reviewed replies; private cards/history remain separate
Accounts, continuation, notifications and support Shared Identity, Public account/Continue/SupportDesk controllers, Security Current account/role checks, unavailable registration/checkout states, clear notifications without leaving the page, private support visibility
Artwork and public media Tools/AssetPipeline, Infrastructure storage/media adapters Separate source/private/public bytes and canonical manifests
Character turnarounds Application IGynoidTurnaroundLibrary / IGynoidTurnaroundEditor, Infrastructure GynoidTurnaroundLibrary / TurnaroundAuthoringStore, Studio Admin Turnarounds Packaged baseline plus durable staff edits, stable character/version pairs, ordered views, revision checks and recoverable deletion
Installed sprite editing Application/Artwork, Infrastructure/Media/InstalledGynoidSpriteEditor, Studio InstalledGynoidSprites Registered image selection, fixed canvas, shared-slot disclosure, revision recovery
Local artwork production Tools/Drakima.GynoidCreationCore, Libraries/Drakima.CreationCore.* Creator-PC compute/storage; explicit approved exports; no website dependency
Background work hosts/DrakimaCore.Workers, capability registrations in Composition Owned cancellation, recovery and effective feature availability
Engineering documentation docs/current, Services/Engineering, Engineering/Admin Web areas One reviewed handbook source, deliberate public/staff audience

Browser ownership

Feature JavaScript belongs in the owning Web project. Shared utilities belong in Web.Shared only when multiple surfaces actually use them. The room lifecycle owns listeners, abort signals, transitions and teardown. It prevents duplicate transitions and late results from changing a newer chat. Keep speech playback state when moving its controls between standard and VN views.

Stable JavaScript module imports and CSS URLs revalidate. Content-versioned Razor asset URLs may cache immutably. Do not add manually dated query strings to dependency imports or duplicate module instances. Room-only CSS belongs to the conversation feature; shared layout owns the global website background.

Finding the exact owner

Use rg for the route, action, interface or browser event. Follow registration in Composition and project references, then inspect the nearest tests. Search SystemCatalog for the matching capability and compatibility allowance. A new interface is useful only if it gives a workflow a clear owner; wrapping the same service without reducing dependencies does not complete a module extraction.

See architecture, rooms, and media.

Gynara game and Maker owners

The sibling TheGynaraLegend repository owns engine, content, authoring, simulation and player presentation. DrakimaCore owns protected Arcade admission, publication and verification. Start with the platform map and release boundaries. Avoid moving website account rules into the game engine or making the portable simulation depend on WPF.