Files
Toju/agents-docs/CONTEXT-MAP.md
brogeby c48b6e9c94 docs: scaffold agent instruction tree
Add AGENTS.md, CLAUDE.md, and the agents-docs/ tree (workflow, lessons,
engineering standards, context map, ADR seed, feature template) plus a
domain-bearing CONTEXT.md for each of the six subdomains: toju-app,
electron, server, e2e, website, docs-site.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 00:02:02 +02:00

3.5 KiB

Context Map

Bounded contexts in this system. Before working in a subdomain, read its CONTEXT.md. See agents-docs/AGENTS_CONTEXT.md for the contract.

Contexts

Context Purpose Public surface CONTEXT.md
toju-app Angular 21 product client — UI, NgRx state, per-domain rules and services for chat, voice, screen-share, plugins, theming Window-hosted Angular bundle; consumes Electron window.api (preload bridge) and the server WebSocket; serves the user-facing experience toju-app/CONTEXT.md
electron Desktop shell — main process, preload bridge, IPC handlers, local SQLite persistence, plugin sandbox, OS integrations window.api.* surface exposed to the renderer via the preload; main-process IPC channel names; CQRS handlers; TypeORM entities in electron/entities/ electron/CONTEXT.md
server Signaling server — REST routes for server directory + auth, WebSocket realtime, CQRS handlers, TypeORM persistence HTTP routes under server/src/routes/; WebSocket envelopes under server/src/websocket/; server-directory API server/CONTEXT.md
e2e Playwright suite — end-to-end coverage of the product client running against a real Electron build and signaling server No public surface — observer/verifier of the system e2e/CONTEXT.md
website Angular 19 marketing site — public-facing landing pages, screenshots, download links Static SSR/CSR bundle deployed independently of the product app website/CONTEXT.md
docs-site Docusaurus app — application and plugin author documentation served by the Electron Local API Static bundle at docs-site/build/, mounted by Electron's local HTTP server for in-app docs docs-site/CONTEXT.md

Relationships

  • toju-app is downstream of electron via the window.api preload bridge. The renderer cannot reach Node, the filesystem, or SQLite directly — every privileged operation goes through an IPC channel defined in electron/.
  • toju-app is downstream of server via the WebSocket envelope contract and the REST server-directory API. Envelope shape changes require coordinated edits to both sides.
  • electron owns the local persistence layer (per-user TypeORM + sql.js database). server owns the shared persistence layer (signaling state, server-directory entries, auth artifacts). They do not share entities — the wire format is the contract.
  • electron hosts docs-site at runtime: the Local API server inside the desktop app mounts the prebuilt Docusaurus bundle so plugin authors and end users can browse docs offline. Building docs-site is a prerequisite of npm run build:all.
  • e2e depends on toju-app, electron, and server simultaneously — tests boot the full desktop stack against a real signaling server. Treat E2E as the integration boundary that proves the contracts above are aligned.
  • website is independent of the runtime stack. It shares no code or schemas with the product app; it links out to release artifacts produced by Gitea Workflows.
  • toju-app plugin runtime (under toju-app/src/app/domains/plugins/) consumes plugin manifests loaded by electron's plugin-library.ts. The manifest schema is a third coupling axis between the two contexts.

Rules for agents

  • Add a row when a new subdomain gains its own CONTEXT.md.
  • Update the public surface or relationships when they change.
  • Keep this file scannable — one row per context, terse purpose strings.