SynaWeave-ce

📜 Apps

🧩 Purpose

This document defines the ownership boundaries, runtime responsibilities, allowed dependencies, and maturity expectations for every application under apps/.

This file is the source of truth for:

This file does not define package internals, infrastructure details, or sprint execution plans. Those belong in:


🧭 App maturity labels

Every app described here must use one of these states only:

No other maturity labels should be used in app-level documentation.


📦 App inventory

The apps/ folder contains these application boundaries:

Each app must own one runtime concern only. If an app begins to own multiple unrelated concerns, the architecture should split it rather than let the boundary blur.

In Deliverable 1, the reserved homes for web, API, ingest, MCP, ML, and evaluation are scaffold placeholders only. Ownership stays centralized in this document until later deliverables add runnable app internals.


🪟 apps/extension

🧩 Purpose

The browser extension is the thin MV3 client for in-context user workflows.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 2 target: integrated
Sprint 5 target: production-ready


🌐 apps/web

🧩 Purpose

The web app is the authenticated control plane for the product.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 2 target: integrated
Sprint 5 target: production-ready


⚙️ apps/api

🧩 Purpose

The API is the first request-serving backend boundary.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 2 target: integrated
Sprint 5 target: production-ready


🧰 apps/mcp

🧩 Purpose

The MCP app is the reusable tool surface for AI-facing interactions with the platform.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 4 target: integrated
Sprint 5 target: production-ready


📥 apps/ingest

🧩 Purpose

The ingest app is the background execution boundary for deterministic ingestion and preprocessing work.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 4 target: integrated
Sprint 5 target: production-ready


🔬 apps/ml

🧩 Purpose

The ML app is the runtime boundary for model-serving and ML-specific application logic that should not live inside the request-serving API or generic ingest jobs.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 4 target: integrated
Sprint 5 target: production-ready


📏 apps/eval

🧩 Purpose

The eval app is the execution boundary for evaluation and regression workflows.

🎯 Responsibilities

🚫 Non-responsibilities

🔗 Allowed dependencies

⛔ Forbidden dependencies

🔄 Inbound interfaces

🔄 Outbound interfaces

📏 Runtime rules

📚 Current target maturity

Sprint 1 target: scaffolded
Sprint 4 target: integrated
Sprint 5 target: production-ready


🔗 Cross-app dependency rules

✅ Allowed app dependency direction

Apps may depend on:

🚫 Forbidden app dependency direction

Apps may not:

📏 Rule of thumb

If two apps need to share:


☁️ Runtime-class rules

Every app must fit one of these runtime classes:

The current app-to-runtime map is:

No app should blur runtime classes without an ADR-backed reason.


👀 Observability ownership by app

Every app must own its own instrumentation boundary.

No app may rely on another app to describe its runtime health.


🔐 Security ownership by app

Each app must explicitly own its own security boundaries.

Any security boundary change must update:


📏 App-level definition of done

An app-level change is incomplete unless:


📜 Relationship to other root docs

This file works with:

This file should not duplicate those documents. It should stay focused on app ownership and boundaries.