DRAKIMACORE // ENGINEERING HANDBOOK

Architecture and project ownership

Hosts, layers, modules and the remaining Runtime bridge.

Reviewed 2026-11-07 · Public chapters

Ask Akari about this chapter
Source: docs/current/architecture.md Download Markdown

DrakimaCore is a modular application with separate executable hosts and shared libraries. The retired root web executable must not be restored as a shortcut. Root folders such as Services, Data, Models, Contracts and Composition remain active source: Runtime compiles them through explicit links in its project file.

Dependency direction

Domain <- Application <- Infrastructure
               ^              ^
               +-- composition in executable hosts
                            |
                 Public / Studio / feature Web libraries

Domain owns framework-independent rules and vocabulary. Application owns use cases, ports and neutral contracts. Infrastructure implements persistence, files and provider protocols. Web libraries own HTTP, Razor and browser behavior. Hosts assemble their permitted capabilities. Runtime is a compatibility library (DrakimaCore.dll), not an executable and not permission to reverse these boundaries.

Executable hosts

Host Responsibility Lifecycle
PublicWeb Public/member routes, room entry, shared core initialization command Main local startup target
StudioWeb Staff CMS, authoring, review and operations On demand in managed development; independent in deployment
Workers Projection, retention, recovery and configured job processing Separate process; no public MVC surface
NodeGuardian Configured node readiness and lifecycle coordination Supporting process, not an LLM server

DrakimaCore.slnx contains the ordinary application/test graph. DrakimaCore.Full.slnx additionally includes operator tools and the full executable set. The curated project inventory in Engineering Observatory must match the Full solution's explicit project entries; transitive projects and tool fixtures are distinct from deployable website hosts.

Physical modules and remaining seams

Legend Maker publication uses focused Application/Legend and Infrastructure/Legend owners, Studio author controls and Public member launchers. Executable archives live in private storage and run on a separate cookie domain through early PublicWeb middleware. This is distinct from the VN Maker's active-time battle authoring/runtime.

The Drakima Arcade implementation has focused Application/Arcade and Infrastructure/Arcade owners for run admission and verified-input checkpoint acceptance. Core owns campaign/run/progress, permanent ownership/reward records and the existing credit ledger; input acceptance has no debit dependency. Verification runs outside the transaction, then a serializable compare-and-swap rechecks the owned run, release, cursor and reward versions. Protected asset delivery resolves only exact inventory hashes and current-room pack membership for the owned pinned run, preflight-verifies the original private file handle and rechecks accepted state before transfer. PublicWeb composes the actual bootstrap, shared verifier, reward writer and room projector only after explicitly configured cold release admission. Member entry and isolated HTTP then use the same Core-backed run owners. See member activation for the current rollout record.

Tools/DrakimaCore.ArcadeTool is the retained cold operator executable. It plans or installs the canonical three-campaign server catalog into one private deduplicated hash store, then loads the complete real project and runs bounded headless entry and checkpoint-recovery checks for all five Maidens. Ordinary install/inspect composes no website host or database. Explicit member-plan and member-activate cold-admit an exact configuration and inspect/publish the three campaign/release records in existing Core through a restricted connection. Activation is atomic and idempotent; it refuses conflicting policies/publications and foreign active-run pins without changing members, wallets, progress or schema. Installed server objects are distribution assets, with no archive, logical media tree or recovery copy. Server-catalog installation alone does not admit a JS/WASM player or enable member purchases.

The current-runtime integration and Tools/DrakimaCore.ArcadeCurrentTool support the later quartet and compatible retained generations through explicit trusted receipts. Current local activation supersedes the historical three-campaign rollout: Campaign 1 is visible to signed-in members; Campaigns 2–4 remain Admin-only. Campaigns 1–2 are free, 3–4 use permanent ownership, and predecessor completion is independent. The current module is deliberately outside the ordinary host solution; building the website must not overwrite retained game binaries or relax their hash checks.

Gynoid Creation Core is an independent local executable under Tools/Drakima.GynoidCreationCore, with dedicated Application/Infrastructure libraries. It runs on the creator's PC, not as a website host or home-lab worker. Only the portable media libraries are shared; no Runtime/database dependency is allowed. See local creation for storage, provider and export boundaries.

Gynoid Conversations has Application, Infrastructure and Web projects. Interview Studio has a Web project and focused application/infrastructure code. Credits has a dedicated project. Public, Studio and shared Web libraries hold their route and presentation surfaces. Media-processing libraries separate portable processing, Skia and Windows/WPF tooling.

Other mature workflows still live behind Runtime-linked services. New work should strengthen a bounded owner rather than create another generic service over the same database. Move one coherent workflow with its contracts, registrations and tests. Do not change schema, routes, namespaces or serialized formats merely to make a directory tree look uniform.

SystemCatalog/manifest-index.json selects the deployed architecture manifests. SystemCatalog/compatibility-seams.json records reviewed exceptions. Architecture tests and the debt ratchet reject dependency reversals and new unreviewed coupling. The catalog is a curated read model; it does not give an AI agent arbitrary repository or database access.

See feature ownership and documentation.

Implementation evidence: src/DrakimaCore.Runtime/DrakimaCore.Runtime.csproj, hosts/, SystemCatalog/, Tests/DrakimaCore.Tests/ArchitectureBoundaryTests.cs, Services/Engineering/EngineeringSolutionManifest.cs.