|
1 | | -╭────────────────────────╮ ╭────────╮ ╭──────────╮ |
2 | | -│ [Proto](../InterDeadProto) │ │ Core │ │ [IT](../InterDeadIT) │ |
3 | | -╰────────────────────────╯ ╰════════╯ ╰──────────╯ |
| 1 | +<pre> |
| 2 | +╔═════════════════════════════════════════════════════════════════════╗ |
| 3 | +║ INTERDEAD :: REPOSITORIES ║ |
| 4 | +╠═════════════════════════════════════════════════════════════════════╣ |
| 5 | +║ ○ <a href="https://github.com/Zhovten-Games/InterDeadReferenceLibrary">InterDead Reference Library (public)</a> ║ |
| 6 | +║ Public reference library: documents and notes that are safe ║ |
| 7 | +║ to share outside the private workspace. ║ |
| 8 | +║ ║ |
| 9 | +║ ○ <a href="https://github.com/Zhovten-Games/InterDeadIT">InterDeadIT (website / entry point)</a> ║ |
| 10 | +║ The website: the public entry point into the InterDead meta-verse.║ |
| 11 | +║ Hosts the “About” and related public-facing materials. ║ |
| 12 | +║ ║ |
| 13 | +║ > InterDeadCore (identity + EFBD core) ║ |
| 14 | +║ Core modules used by the website: identity/auth and EFBD logic. ║ |
| 15 | +║ Published as packages and consumed by InterDeadIT. ║ |
| 16 | +║ ║ |
| 17 | +║ ○ <a href="https://github.com/Zhovten-Games/PsyFramework">PsyFramework</a> (research / tooling) ║ |
| 18 | +║ Research and tooling repo referenced by the project; supporting ║ |
| 19 | +║ framework work that may be mentioned from public docs. ║ |
| 20 | +╠═════════════════════════════════════════════════════════════════════╣ |
| 21 | +║ INTERDEADIT ║ |
| 22 | +║═════════════════════════════════════════════════════════════════════║ |
| 23 | +║ InterDeadCore is the monorepo for shared InterDead domain packages. ║ |
| 24 | +║ It keeps identity and EFBD scoring logic decoupled from ║ |
| 25 | +║ presentation, follows hexagonal architecture boundaries, and ║ |
| 26 | +║ ships reusable building blocks for downstream runtimes. Each ║ |
| 27 | +║ package is versioned independently, while the repository maintains ║ |
| 28 | +║ shared data contracts and operational notes so adapters remain ║ |
| 29 | +║ consistent across deployments. This layout differs from InterDeadIT,║ |
| 30 | +║ which hosts a single website surface while consuming these packages ║ |
| 31 | +║ as dependencies. ║ |
| 32 | +║═════════════════════════════════╦═══════════════════════════════════║ |
| 33 | +║ ECHO OF AN UNFADING MEMORY ║ INTERDEAD WIKI (ALL LANGUAGES) ║ |
| 34 | +╠═════════════════════════════════╬═══════════════════════════════════╣ |
| 35 | +║ <a href="https://interdead.phantom-draft.com/about/">READ (EN)</a> ║ <a href="https://interdead.fandom.com/wiki/InterDead_Wiki">READ (EN)</a> ║ |
| 36 | +╠═════════════════════════════════╬═══════════════════════════════════╣ |
| 37 | +║ <a href="https://interdead.phantom-draft.com/ru/about/">READ (RU)</a> ║ <a href="https://interdead.fandom.com/ru/wiki/Interdead_%D0%92%D0%B8%D0%BA%D0%B8">READ (RU)</a> ║ |
| 38 | +╠═════════════════════════════════╬═══════════════════════════════════╣ |
| 39 | +║ <a href="https://interdead.phantom-draft.com/uk/about/">READ (UK)</a> ║ <a href="https://interdead.fandom.com/uk/wiki/Main_Page">READ (UK)</a> ║ |
| 40 | +╠═════════════════════════════════╬═══════════════════════════════════╣ |
| 41 | +║ <a href="https://interdead.phantom-draft.com/ja/about/">READ (JA)</a> ║ <a href="https://interdead.fandom.com/ja/wiki/InterDead_Wiki">READ (JA)</a> ║ |
| 42 | +║═════════════════════════════════╩═══════════════════════════════════║ |
| 43 | +║ CONTACT ║ |
| 44 | +╠═════════════════════════════════════════════════════════════════════╣ |
| 45 | +║ <a href="https://www.linkedin.com/company/zhovten-games/">Zhovten Games — LinkedIn</a> ║ |
| 46 | +╚═════════════════════════════════════════════════════════════════════╝ |
| 47 | +</pre> |
4 | 48 |
|
5 | | -## Introduction |
| 49 | +Packages: |
| 50 | +- `@interdead/identity-core`: Discord-authenticated identity kernel with pluggable storage. |
| 51 | +- `@interdead/efbd-scale`: EFBD scoring domain for adaptive horror design. |
6 | 52 |
|
7 | | -InterDeadCore is the monorepo that harmonizes the shared services of the metaverse once the prototype branched into independent packages. It keeps domain kernels decoupled from presentation, follows the hexagonal architecture, and ships reusable building blocks for identity, EFBD scoring, and auxiliary tooling. |
| 53 | +## Stack |
8 | 54 |
|
9 | | -## Installation |
| 55 | +- TypeScript domain packages |
| 56 | +- Cloudflare Workers + D1 + KV (host-provided bindings) |
| 57 | +- Hexagonal architecture with ports-and-adapters |
10 | 58 |
|
11 | | -Each package is versioned and published independently. Refer to the package-level README files for installation commands: |
12 | | -- `efbd-scale`: D1/KV-aware EFBD scoring domain for adaptive horror design. |
13 | | -- `identity-core`: Discord-authenticated identity kernel with pluggable storage. |
| 59 | +## Local dev |
14 | 60 |
|
15 | | -## Usage Examples |
| 61 | +- Install dependencies per package: `npm install` inside `identity-core/` and `efbd-scale/`. |
| 62 | +- Run tests per package: `npm test` (and `npm run typecheck` where available). |
16 | 63 |
|
17 | | -See the package READMEs for runnable snippets. A typical host registers the identity core and EFBD scale adapters in its IoC container, then wires presentation controllers in the site repo (`InterDeadIT`). |
| 64 | +## Deployment (high-level) |
18 | 65 |
|
19 | | -## Additional Notes |
| 66 | +- Packages are released independently from the monorepo. |
| 67 | +- Downstream repositories (such as InterDeadIT) explicitly upgrade package versions. |
| 68 | +- See release details in the documentation index below. |
20 | 69 |
|
21 | | -- The Fear Inversion Matrix reference is now kept in `wiki/fear_inversion_matrix.md` for easier cross-linking across packages. |
22 | | -- Aligns with the narrative and deployment orchestrated by the landing site (`InterDeadIT`) and the prototype lore (`InterDeadProto`). |
23 | | -- Contributions should preserve the ports-and-adapters layering to keep packages swappable across runtimes. |
24 | | -- Release flow: bump a package with `npm version patch`, create and push a tag matching the package name (for example `identity-core-v0.1.6` or `efbd-scale-v0.1.3`), and ask downstream repos to upgrade explicitly (e.g., `npm install @interdead/[email protected]`). |
25 | | -- Shared D1 schema: the `profiles` table should exist with `profile_id TEXT PRIMARY KEY`, `data TEXT NOT NULL` (JSON identity aggregate plus auxiliary fields like `completedGames`), `last_cleanup_at TEXT`, `last_cleanup_timezone TEXT`, and `delete_count INTEGER DEFAULT 0`. |
| 70 | +## Conventions |
| 71 | + |
| 72 | +- Keep adapters thin and let domain services own the business logic. |
| 73 | +- Use object-oriented aggregates and shared base errors to keep responsibilities separated. |
| 74 | +- Preserve ports-and-adapters layering so packages remain swappable across runtimes. |
| 75 | + |
| 76 | +## Engineering standards |
| 77 | + |
| 78 | +Engineering standards: Canonical project-wide engineering ideals and development standards are maintained in the InterDead Reference Library (public): https://github.com/Zhovten-Games/InterDeadReferenceLibrary/tree/main/standards/development. This repository follows that canon; local notes here must not override or fork the shared standards. |
| 79 | + |
| 80 | +## Docs index |
| 81 | + |
| 82 | +Start here: [docs/index.md](docs/index.md) |
| 83 | + |
| 84 | +Key references: |
| 85 | + |
| 86 | +- [Architecture overview](docs/architecture/overview.md) |
| 87 | +- [Ports and events](docs/architecture/ports-and-events.md) |
| 88 | +- [Data contracts](docs/data/schemas.md) |
| 89 | +- [Release flow](docs/release/versioning-and-tags.md) |
0 commit comments