System Manifest Structure
The System Manifest is the canonical structured representation of a product's architecture. Every deliverable (diagrams, cost estimates, complexity scores, specs) derives from this manifest. When building a manifest, use the types and structure defined below.
Manifest Top-Level Structure
project:
name: string
type: app | agent | hybrid
description: string (one sentence)
users:
- role: string
description: string
count_estimate: string (range, e.g. "100-1,000 MAU")
frontends:
- name: string
type: <frontend_type>
framework: string
pages: [string]
build_tool: string (optional, e.g. "Vite", "Webpack", "Expo")
rendering: ssr | ssg | spa (optional, web only)
state_management: string (optional, e.g. "Zustand", "Redux")
data_fetching: string (optional, e.g. "React Query", "SWR")
component_library: string (optional, e.g. "Radix UI", "React Native Paper")
form_handling: string (optional, e.g. "React Hook Form")
validation: string (optional, e.g. "Zod", "Yup")
api_client: string (optional, e.g. "Axios", "fetch")
styling: string (optional, e.g. "Tailwind CSS")
routing: string (optional, e.g. "React Router", "Expo Router")
animation: string (optional, e.g. "Framer Motion")
deploy_target: string (optional, e.g. "Vercel", "Cloudflare Pages")
dev_port: integer (optional, e.g. 3000)
backend_connections: (optional)
- service: string (references a defined service)
purpose: string
client_auth: (optional)
token_storage: string (e.g. "cookie", "async-storage", "keychain")
csrf_protection: boolean
token_refresh: boolean
device_binding: boolean (mobile only)
realtime: (optional)
protocol: websocket | socket-io | sse | polling | webrtc
provider: string (optional, e.g. "Cloudflare RTK", "Dyte")
monitoring: (optional)
error_tracking: string (e.g. "Sentry", "Crashlytics")
analytics: string (e.g. "PostHog", "Mixpanel")
mobile_config: (optional, for ios/android types)
bundle_id: string (e.g. "com.example.myapp")
build_platform: string (e.g. "Expo Managed")
navigation: string (e.g. "Expo Router", "React Navigation")
push_providers: [string] (e.g. ["FCM", "APNS"])
deep_link_scheme: string (e.g. "myapp")
associated_domains: [string]
permissions: [string] (e.g. ["camera", "microphone"])
ota_updates: string (e.g. "Expo Updates")
services:
- name: string
type: <service_type>
framework: string
responsibilities: [string]
endpoints: [string] (key endpoints only)
databases:
- name: string
type: <database_type>
purpose: string (primary | cache | search | analytics | vector-store)
key_collections: [string]
integrations:
- name: string
category: <integration_category>
service: string (specific provider)
purpose: string
credentials: [string]
agents: (only for agent or hybrid projects)
- name: string
purpose: string
llm_provider: <llm_provider>
model: string
orchestration: <agent_orchestration>
interface: <agent_interface>
tools:
- name: string
type: <agent_tool_type>
description: string
memory: session | persistent | vector-store
guardrails: [string]
shared:
types:
- name: string
description: string
used_by: [string] (component names that share this type)
fields: [string] (key fields or shape)
libraries:
- name: string
purpose: string
used_by: [string]
contracts:
- name: string
type: api-schema | event-schema | proto-definition
description: string
between: [string] (component names)
application_patterns:
architecture: <architecture_pattern>
principles: [string] (e.g. "dependency inversion", "single responsibility")
folder_convention: <folder_convention>
error_handling: string (strategy description)
testing_strategy: string (e.g. "unit + integration", "contract tests between services")
communication:
- from: string (component name)
to: string (component name)
pattern: <communication_pattern>
protocol: string (e.g. "HTTPS", "AMQP", "gRPC/Protobuf")
auth: string (e.g. "JWT bearer", "API key", "mTLS", "none (internal)")
data_format: string (e.g. "JSON", "Protobuf", "Avro")
retry_strategy: string (optional, e.g. "exponential backoff, 3 retries")
notes: string (optional, context for this connection)
artifacts:
- name: string
type: openapi | postman-collection | asyncapi | graphql-schema
service: string (which service this artifact documents)
format: yaml | json | graphql
security:
auth_strategy: string (e.g. "JWT with refresh tokens via Clerk")
api_security:
- name: string (e.g. "rate limiting", "input validation", "CORS")
implementation: string
applies_to: [string] (component names)
data_protection:
encryption_at_rest: string (e.g. "AES-256 via database provider")
encryption_in_transit: string (e.g. "TLS 1.3 on all endpoints")
pii_fields: [string] (fields that contain personally identifiable information)
data_retention: string (policy)
secrets_management: string (e.g. "environment variables via Doppler / Vercel env")
compliance: [string] (e.g. ["GDPR", "SOC2", "HIPAA"] — only if applicable)
owasp_considerations:
- threat: string (e.g. "SQL injection", "XSS", "CSRF")
mitigation: string
observability:
logging:
strategy: string (e.g. "structured JSON logs")
provider: string (e.g. "Axiom", "Datadog", "CloudWatch")
log_levels: [string] (e.g. ["error", "warn", "info", "debug"])
tracing:
enabled: boolean
provider: string (e.g. "OpenTelemetry → Jaeger" or "Datadog APM")
instrumented_services: [string]
metrics:
provider: string (e.g. "Prometheus + Grafana", "Datadog")
key_metrics: [string] (e.g. ["request latency p99", "error rate", "queue depth"])
alerting:
provider: string (e.g. "PagerDuty", "Opsgenie", "Slack webhooks")
critical_alerts: [string] (e.g. ["error rate > 5%", "latency p99 > 2s", "queue backlog > 1000"])
health_checks:
- component: string
endpoint: string (e.g. "/health")
checks: [string] (e.g. ["database connectivity", "redis connectivity", "external API reachability"])
devops:
cicd:
provider: string (e.g. "GitHub Actions", "GitLab CI", "CircleCI")
branch_strategy: <branch_strategy>
pipeline_stages: [string] (e.g. ["lint", "test", "build", "deploy"])
environments:
- name: string (e.g. "development", "staging", "production")
branch: string (e.g. "develop", "staging", "main")
auto_deploy: boolean
url_pattern: string (e.g. "{{service}}-dev.{{domain}}")
database_migrations:
tool: string (e.g. "Prisma Migrate", "Alembic", "Knex", "TypeORM")
strategy: string (e.g. "versioned migrations with rollback scripts")
seed_data: string (e.g. "dev seeds with faker data, staging seeds from anonymized prod")
rollback_plan: string
environment_config:
strategy: <config_strategy>
feature_flags: string (optional, e.g. "LaunchDarkly", "Unleash", "environment variables")
config_validation: string (e.g. "Zod schema validation on startup")
deployment:
- component: string
target: string (e.g. "Vercel", "AWS ECS", "Railway")
Enumerated Types
Project Type
| Value |
When to Use |
app |
Traditional application — web, mobile, desktop, CLI. No AI agents. |
agent |
AI agent system — no traditional application UI beyond the agent interface. |
hybrid |
Application with embedded AI agents. Most common for modern products. |
Frontend Type
| Value |
Description |
web |
Browser-based (React, Next.js, Vue, Svelte, etc.) |
ios |
Native iOS (Swift/SwiftUI) or cross-platform targeting iOS |
android |
Native Android (Kotlin) or cross-platform targeting Android |
desktop |
Desktop app (Electron, Tauri, native) |
cli |
Command-line interface |
crm |
CRM / back-office management interface |
booking |
Booking / scheduling application |
ai-chat |
AI chat / conversational interface |
Frontend Rendering (Web Only)
| Value |
When to Use |
ssr |
Server-side rendering. Best for SEO, dynamic content. |
ssg |
Static site generation. Best for content-heavy, infrequently changing pages. |
spa |
Single-page application. Best for app-like UX, no SEO needs. |
Client-Side Token Storage
| Value |
Platform |
Description |
cookie |
Web |
HTTP-only cookies. Most secure for web. |
localStorage |
Web |
Browser localStorage. Persistent but XSS-vulnerable. |
sessionStorage |
Web |
Browser sessionStorage. Cleared on tab close. |
memory |
Web |
In-memory only. Most secure but lost on refresh. |
async-storage |
Mobile (RN) |
React Native AsyncStorage. Unencrypted. |
secure-store |
Mobile (RN) |
Expo SecureStore. Uses Keychain/Keystore. |
keychain |
Mobile (iOS) |
iOS Keychain. Survives reinstalls. |
encrypted-shared-prefs |
Mobile (Android) |
Android EncryptedSharedPreferences. |
Real-Time Protocol
| Value |
When to Use |
websocket |
Raw WebSocket for bidirectional communication |
socket-io |
Socket.IO with auto-reconnect, rooms, namespaces |
sse |
Server-Sent Events for one-way streaming (AI responses, live feeds) |
polling |
HTTP polling when WebSocket not available |
webrtc |
Peer-to-peer audio/video communication |
Mobile Permissions
| Value |
Description |
camera |
Camera access for photos/video |
microphone |
Microphone access for audio/calls |
contacts |
Address book access |
location |
GPS / location services |
notifications |
Push notification permission |
photos |
Photo library access |
calendar |
Calendar access |
bluetooth |
Bluetooth device communication |
background-audio |
Background audio playback/recording |
Service Type
| Value |
Description |
rest-api |
RESTful HTTP API |
graphql |
GraphQL API |
websocket |
Real-time bidirectional communication |
worker |
Background job processor |
cron |
Scheduled task runner |
gateway |
API gateway or reverse proxy |
Database Type
| Value |
Typical Use Case |
postgresql |
Relational data, complex queries, transactions |
mongodb |
Document storage, flexible schemas |
redis |
Caching, sessions, rate limiting, pub/sub |
dynamodb |
Key-value at scale, serverless workloads |
elasticsearch |
Full-text search, log analytics |
mysql |
Relational data, legacy systems |
sqlite |
Local/embedded, development, mobile |
firestore |
Real-time sync, mobile-first, serverless |
Integration Category
| Value |
Examples |
payments |
Stripe, PayPal, Paddle, LemonSqueezy |
email |
SendGrid, Resend, AWS SES, Postmark |
sms |
Twilio, MessageBird, Vonage |
maps |
Google Maps, Mapbox, HERE |
auth |
Auth0, Clerk, Firebase Auth, Supabase Auth |
storage |
AWS S3, Cloudflare R2, Google Cloud Storage |
analytics |
PostHog, Mixpanel, Amplitude, Google Analytics |
monitoring |
Sentry, Datadog, Grafana, New Relic |
cdn |
Cloudflare, CloudFront, Fastly |
search |
Algolia, Typesense, Meilisearch |
messaging |
Slack API, Discord API, Telegram Bot API |
notifications |
OneSignal, Firebase Cloud Messaging, Novu |
ci-cd |
GitHub Actions, GitLab CI, CircleCI |
LLM Provider
| Value |
Models |
anthropic |
Claude Haiku, Sonnet, Opus |
openai |
GPT-4o, GPT-4o-mini, o1, o3 |
google |
Gemini Flash, Gemini Pro |
mistral |
Mistral Large, Mistral Small, Codestral |
groq |
LLaMA, Mixtral (fast inference) |
local |
Ollama, llama.cpp, vLLM |
multi |
Multiple providers with fallback/routing |
Agent Orchestration
| Value |
When to Use |
single-turn |
Simple request-response, no reasoning chain needed |
react |
Tool-using agent that reasons then acts in a loop |
chain-of-thought |
Multi-step reasoning without tool use |
multi-agent-router |
Router dispatches to specialist agents sequentially |
multi-agent-parallel |
Multiple agents work simultaneously, results merged |
plan-and-execute |
Planner creates steps, executor runs them |
custom |
Novel orchestration pattern — describe in detail |
Agent Tool Type
| Value |
Description |
api-call |
Calls an external HTTP API |
database-query |
Reads from or writes to a database |
web-search |
Searches the web for information |
code-execution |
Runs code in a sandbox |
file-io |
Reads or writes files |
browser |
Navigates web pages, scrapes content |
human-handoff |
Escalates to a human operator |
agent-delegate |
Delegates to another agent |
custom |
Custom tool — describe in detail |
Agent Interface
| Value |
Description |
chat-ui |
Web-based chat interface |
api |
Programmatic API (no UI) |
slack-bot |
Slack workspace bot |
discord-bot |
Discord server bot |
cli |
Command-line interface |
email |
Email-based interaction |
voice |
Voice interface (phone, smart speaker) |
Architecture Pattern
| Value |
When to Use |
clean-architecture |
Layered with strict dependency inversion (domain → use cases → adapters → frameworks). Best for complex business logic. |
hexagonal |
Ports and adapters. Similar to clean architecture but emphasizes interchangeable external integrations. |
mvc |
Model-View-Controller. Simple apps, server-rendered pages, CRUD-heavy products. |
mvvm |
Model-View-ViewModel. Mobile apps, reactive UIs with data binding. |
modular-monolith |
Monolith organized into self-contained modules with clear boundaries. Good starting point before microservices. |
microservices |
Independent deployable services with own databases. Only when team/scale justifies the overhead. |
serverless |
Functions as compute units (Lambda, Cloud Functions). Event-driven, low-traffic, or bursty workloads. |
event-driven |
Components communicate through events/messages. Decoupled, async-first. |
cqrs |
Command Query Responsibility Segregation. Separate read/write models. Complex domains with different read/write patterns. |
layered |
Simple horizontal layers (presentation → business → data). Straightforward CRUD apps. |
Folder Convention
| Value |
Structure |
Best For |
feature-based |
src/features/auth/, src/features/orders/, src/features/payments/ |
Most apps. Groups related code (routes, services, models) by feature. |
layer-based |
src/controllers/, src/services/, src/models/, src/repositories/ |
Simple CRUD apps. Groups by technical layer. |
domain-driven |
src/domain/, src/application/, src/infrastructure/, src/presentation/ |
Clean/hexagonal architecture. Enforces dependency direction. |
module-based |
src/modules/auth/, src/modules/billing/ with internal layers per module |
Modular monoliths. Each module is self-contained. |
flat |
src/ with files grouped loosely |
Small services, workers, single-purpose microservices. |
Shared Contract Type
| Value |
Description |
api-schema |
OpenAPI / JSON Schema defining REST API contracts between services |
event-schema |
Event payload schema (e.g. CloudEvents, AsyncAPI) for message queues / event bus |
proto-definition |
Protocol Buffer definition for gRPC services |
graphql-schema |
Shared GraphQL type definitions |
typescript-types |
Shared TypeScript type/interface package |
json-schema |
Generic JSON Schema used for validation across services |
Branch Strategy
| Value |
When to Use |
github-flow |
Single main branch + feature branches. Simple. Best for most startups and small teams. |
gitflow |
develop + main + feature/release/hotfix branches. Best for products with scheduled releases. |
trunk-based |
Everyone commits to main with short-lived feature branches (<1 day). Best for CI/CD-mature teams. |
release-branching |
Main + release branches (release/1.0, release/1.1). Best for products with multiple supported versions. |
Config Strategy
| Value |
Description |
env-vars |
Environment variables (.env files locally, platform env vars in production). Simplest approach. |
config-service |
Centralized config management (Doppler, AWS Parameter Store, HashiCorp Vault). Best for multi-service architectures. |
file-based |
Config files per environment (config.dev.json, config.prod.json). Best for simple apps. |
hybrid |
Secrets in a config service, non-sensitive config in env vars or files. Best balance of security and simplicity. |
Communication Pattern
| Value |
When to Use |
rest |
Standard request-response between services |
graphql |
Flexible queries from frontend to backend |
websocket |
Real-time bidirectional (chat, live updates) |
grpc |
High-performance service-to-service |
message-queue |
Async processing (SQS, RabbitMQ, BullMQ) |
event-bus |
Event-driven decoupled services (EventBridge, Kafka) |
sse |
Server-to-client streaming (AI responses, live feeds) |
Example Manifest Snippet
project:
name: "SupportBot Pro"
type: hybrid
description: "AI-powered customer support platform with human escalation"
users:
- role: customer
description: "End users seeking support"
count_estimate: "1,000-10,000 MAU"
- role: support-agent
description: "Human support staff handling escalations"
count_estimate: "5-20"
- role: admin
description: "Manages knowledge base, views analytics"
count_estimate: "1-3"
frontends:
- name: customer-widget
type: web
framework: React
pages: [chat-widget, ticket-history]
build_tool: Vite
rendering: spa
state_management: Zustand
data_fetching: React Query
api_client: fetch
styling: Tailwind CSS
deploy_target: Vercel
dev_port: 3001
backend_connections:
- { service: api-server, purpose: "Ticket CRUD and history" }
- { service: agent-service, purpose: "Real-time AI chat" }
client_auth:
token_storage: cookie
csrf_protection: true
token_refresh: true
realtime:
protocol: websocket
monitoring:
error_tracking: Sentry
- name: agent-dashboard
type: web
framework: Next.js
pages: [inbox, conversation-view, knowledge-base, analytics]
build_tool: Webpack
rendering: ssr
state_management: Zustand
data_fetching: React Query
component_library: Radix UI
form_handling: React Hook Form
validation: Zod
styling: Tailwind CSS
routing: Next.js App Router
deploy_target: Vercel
dev_port: 3000
backend_connections:
- { service: api-server, purpose: "All admin and agent operations" }
client_auth:
token_storage: cookie
token_refresh: true
monitoring:
error_tracking: Sentry
analytics: PostHog
services:
- name: api-server
type: rest-api
framework: Node.js/Express
responsibilities: [auth, ticket-management, knowledge-base-crud]
- name: agent-service
type: websocket
framework: Node.js
responsibilities: [ai-agent-orchestration, streaming-responses]
databases:
- name: primary-db
type: postgresql
purpose: primary
key_collections: [users, tickets, conversations, knowledge_articles]
- name: vector-db
type: postgresql
purpose: vector-store
key_collections: [knowledge_embeddings]
- name: cache
type: redis
purpose: cache
key_collections: [sessions, rate_limits]
agents:
- name: support-agent
purpose: "Answer customer questions using knowledge base, escalate complex issues"
llm_provider: anthropic
model: claude-sonnet
orchestration: react
interface: chat-ui
tools:
- name: search-knowledge-base
type: database-query
description: "Vector search over knowledge articles"
- name: create-ticket
type: api-call
description: "Create support ticket for human follow-up"
- name: human-handoff
type: human-handoff
description: "Transfer conversation to human agent"
memory: persistent
guardrails:
- "Never make promises about refunds or policy changes"
- "Always disclose that you are an AI when asked"
- "Escalate to human if confidence is low or customer is upset"
shared:
types:
- name: User
description: "Core user type shared across API and dashboard"
used_by: [api-server, agent-dashboard]
fields: [id, email, role, displayName, createdAt]
- name: Ticket
description: "Support ticket shared between API, agent, and dashboard"
used_by: [api-server, agent-service, agent-dashboard]
fields: [id, customerId, subject, status, priority, messages[], assignedTo]
- name: KnowledgeArticle
description: "Knowledge base article used by API and AI agent"
used_by: [api-server, support-agent]
fields: [id, title, content, embedding, category, updatedAt]
libraries:
- name: shared-types
purpose: "TypeScript type definitions shared across all Node.js services"
used_by: [api-server, agent-service, agent-dashboard, customer-widget]
- name: shared-validators
purpose: "Zod schemas for request/response validation"
used_by: [api-server, agent-service]
contracts:
- name: ticket-events
type: event-schema
description: "Event payloads for ticket lifecycle (created, assigned, resolved, escalated)"
between: [api-server, agent-service]
- name: api-contract
type: api-schema
description: "OpenAPI spec for the REST API consumed by frontends"
between: [api-server, customer-widget, agent-dashboard]
application_patterns:
architecture: clean-architecture
principles:
- "Dependency inversion — domain layer has zero external dependencies"
- "Single responsibility — each service owns one bounded context"
- "Interface segregation — clients depend only on the methods they use"
- "Fail fast — validate at boundaries, trust internal data"
folder_convention: feature-based
error_handling: "Structured error codes with user-friendly messages. Services return {code, message, details}. Frontend maps codes to UI text."
testing_strategy: "Unit tests for business logic, integration tests for API endpoints, contract tests between api-server and agent-service"
communication:
- from: customer-widget
to: api-server
pattern: rest
protocol: HTTPS
auth: JWT bearer
data_format: JSON
- from: customer-widget
to: agent-service
pattern: websocket
protocol: WSS
auth: JWT bearer
data_format: JSON
- from: agent-dashboard
to: api-server
pattern: rest
protocol: HTTPS
auth: JWT bearer
data_format: JSON
- from: agent-service
to: api-server
pattern: rest
protocol: HTTP (internal)
auth: API key
data_format: JSON
notes: "Internal service-to-service call for ticket operations"
- from: api-server
to: agent-service
pattern: message-queue
protocol: Redis/BullMQ
auth: none (internal)
data_format: JSON
retry_strategy: "exponential backoff, 3 retries"
notes: "Async ticket assignment and AI processing"
security:
auth_strategy: "JWT with refresh tokens via Clerk"
api_security:
- name: rate-limiting
implementation: "Upstash Ratelimit — 100 requests/min per user"
applies_to: [api-server]
- name: input-validation
implementation: "Zod schemas on all request bodies"
applies_to: [api-server, agent-service]
- name: cors
implementation: "Whitelist customer-widget and agent-dashboard origins only"
applies_to: [api-server]
- name: helmet-headers
implementation: "helmet middleware for CSP, HSTS, X-Frame-Options"
applies_to: [api-server]
data_protection:
encryption_at_rest: "AES-256 via Supabase (PostgreSQL) default encryption"
encryption_in_transit: "TLS 1.3 on all external endpoints"
pii_fields: [email, displayName, phone]
data_retention: "User data retained while account active, deleted 30 days after account deletion"
secrets_management: "Vercel environment variables for production, .env files for local development"
owasp_considerations:
- threat: "Broken access control"
mitigation: "Role-based middleware on every route. Support agents can't access admin endpoints."
- threat: "Injection"
mitigation: "Prisma parameterized queries. Zod validation on all inputs."
- threat: "SSRF"
mitigation: "Agent tool URLs whitelisted. No user-provided URLs fetched server-side."
observability:
logging:
strategy: "Structured JSON logs via pino"
provider: "Axiom (free tier)"
log_levels: [error, warn, info, debug]
tracing:
enabled: false
provider: "Not needed at MVP stage"
instrumented_services: []
metrics:
provider: "Vercel Analytics + Sentry performance"
key_metrics: ["request latency p99", "error rate", "queue depth", "AI response time"]
alerting:
provider: "Sentry + Slack webhook"
critical_alerts: ["error rate > 5%", "api-server down", "agent-service queue backlog > 500"]
health_checks:
- component: api-server
endpoint: "/health"
checks: ["PostgreSQL connectivity", "Redis connectivity"]
- component: agent-service
endpoint: "/health"
checks: ["Redis connectivity", "Anthropic API reachability"]
devops:
cicd:
provider: "GitHub Actions"
branch_strategy: github-flow
pipeline_stages: [lint, test, build, deploy]
environments:
- name: staging
branch: develop
auto_deploy: true
url_pattern: "{{service}}-staging.vercel.app"
- name: production
branch: main
auto_deploy: true
url_pattern: "{{service}}.vercel.app"
database_migrations:
tool: "Prisma Migrate"
strategy: "Versioned migrations committed to git. Run automatically in CI before deploy."
seed_data: "Dev seeds with faker.js for local development"
rollback_plan: "Prisma migrate rollback for failed migrations. Manual SQL for data fixes."
environment_config:
strategy: env-vars
feature_flags: "Environment variables (ENABLE_AI_AGENT=true/false) for MVP"
config_validation: "Zod schema validates all env vars on service startup"
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: manifest-structure3description: Canonical system manifest format with all enumerated types for project, frontend, service, database, integration, LLM, agent, and communication components. Use when structuring architecture output. Use when this capability is needed.4---56# System Manifest Structure78The System Manifest is the canonical structured representation of a product's architecture. Every deliverable (diagrams, cost estimates, complexity scores, specs) derives from this manifest. When building a manifest, use the types and structure defined below.910---1112## Manifest Top-Level Structure1314```15project:16 name: string17 type: app | agent | hybrid18 description: string (one sentence)1920users:21 - role: string22 description: string23 count_estimate: string (range, e.g. "100-1,000 MAU")2425frontends:26 - name: string27 type: <frontend_type>28 framework: string29 pages: [string]30 build_tool: string (optional, e.g. "Vite", "Webpack", "Expo")31 rendering: ssr | ssg | spa (optional, web only)32 state_management: string (optional, e.g. "Zustand", "Redux")33 data_fetching: string (optional, e.g. "React Query", "SWR")34 component_library: string (optional, e.g. "Radix UI", "React Native Paper")35 form_handling: string (optional, e.g. "React Hook Form")36 validation: string (optional, e.g. "Zod", "Yup")37 api_client: string (optional, e.g. "Axios", "fetch")38 styling: string (optional, e.g. "Tailwind CSS")39 routing: string (optional, e.g. "React Router", "Expo Router")40 animation: string (optional, e.g. "Framer Motion")41 deploy_target: string (optional, e.g. "Vercel", "Cloudflare Pages")42 dev_port: integer (optional, e.g. 3000)43 backend_connections: (optional)44 - service: string (references a defined service)45 purpose: string46 client_auth: (optional)47 token_storage: string (e.g. "cookie", "async-storage", "keychain")48 csrf_protection: boolean49 token_refresh: boolean50 device_binding: boolean (mobile only)51 realtime: (optional)52 protocol: websocket | socket-io | sse | polling | webrtc53 provider: string (optional, e.g. "Cloudflare RTK", "Dyte")54 monitoring: (optional)55 error_tracking: string (e.g. "Sentry", "Crashlytics")56 analytics: string (e.g. "PostHog", "Mixpanel")57 mobile_config: (optional, for ios/android types)58 bundle_id: string (e.g. "com.example.myapp")59 build_platform: string (e.g. "Expo Managed")60 navigation: string (e.g. "Expo Router", "React Navigation")61 push_providers: [string] (e.g. ["FCM", "APNS"])62 deep_link_scheme: string (e.g. "myapp")63 associated_domains: [string]64 permissions: [string] (e.g. ["camera", "microphone"])65 ota_updates: string (e.g. "Expo Updates")6667services:68 - name: string69 type: <service_type>70 framework: string71 responsibilities: [string]72 endpoints: [string] (key endpoints only)7374databases:75 - name: string76 type: <database_type>77 purpose: string (primary | cache | search | analytics | vector-store)78 key_collections: [string]7980integrations:81 - name: string82 category: <integration_category>83 service: string (specific provider)84 purpose: string85 credentials: [string]8687agents: (only for agent or hybrid projects)88 - name: string89 purpose: string90 llm_provider: <llm_provider>91 model: string92 orchestration: <agent_orchestration>93 interface: <agent_interface>94 tools:95 - name: string96 type: <agent_tool_type>97 description: string98 memory: session | persistent | vector-store99 guardrails: [string]100101shared:102 types:103 - name: string104 description: string105 used_by: [string] (component names that share this type)106 fields: [string] (key fields or shape)107 libraries:108 - name: string109 purpose: string110 used_by: [string]111 contracts:112 - name: string113 type: api-schema | event-schema | proto-definition114 description: string115 between: [string] (component names)116117application_patterns:118 architecture: <architecture_pattern>119 principles: [string] (e.g. "dependency inversion", "single responsibility")120 folder_convention: <folder_convention>121 error_handling: string (strategy description)122 testing_strategy: string (e.g. "unit + integration", "contract tests between services")123124communication:125 - from: string (component name)126 to: string (component name)127 pattern: <communication_pattern>128 protocol: string (e.g. "HTTPS", "AMQP", "gRPC/Protobuf")129 auth: string (e.g. "JWT bearer", "API key", "mTLS", "none (internal)")130 data_format: string (e.g. "JSON", "Protobuf", "Avro")131 retry_strategy: string (optional, e.g. "exponential backoff, 3 retries")132 notes: string (optional, context for this connection)133134artifacts:135 - name: string136 type: openapi | postman-collection | asyncapi | graphql-schema137 service: string (which service this artifact documents)138 format: yaml | json | graphql139140security:141 auth_strategy: string (e.g. "JWT with refresh tokens via Clerk")142 api_security:143 - name: string (e.g. "rate limiting", "input validation", "CORS")144 implementation: string145 applies_to: [string] (component names)146 data_protection:147 encryption_at_rest: string (e.g. "AES-256 via database provider")148 encryption_in_transit: string (e.g. "TLS 1.3 on all endpoints")149 pii_fields: [string] (fields that contain personally identifiable information)150 data_retention: string (policy)151 secrets_management: string (e.g. "environment variables via Doppler / Vercel env")152 compliance: [string] (e.g. ["GDPR", "SOC2", "HIPAA"] — only if applicable)153 owasp_considerations:154 - threat: string (e.g. "SQL injection", "XSS", "CSRF")155 mitigation: string156157observability:158 logging:159 strategy: string (e.g. "structured JSON logs")160 provider: string (e.g. "Axiom", "Datadog", "CloudWatch")161 log_levels: [string] (e.g. ["error", "warn", "info", "debug"])162 tracing:163 enabled: boolean164 provider: string (e.g. "OpenTelemetry → Jaeger" or "Datadog APM")165 instrumented_services: [string]166 metrics:167 provider: string (e.g. "Prometheus + Grafana", "Datadog")168 key_metrics: [string] (e.g. ["request latency p99", "error rate", "queue depth"])169 alerting:170 provider: string (e.g. "PagerDuty", "Opsgenie", "Slack webhooks")171 critical_alerts: [string] (e.g. ["error rate > 5%", "latency p99 > 2s", "queue backlog > 1000"])172 health_checks:173 - component: string174 endpoint: string (e.g. "/health")175 checks: [string] (e.g. ["database connectivity", "redis connectivity", "external API reachability"])176177devops:178 cicd:179 provider: string (e.g. "GitHub Actions", "GitLab CI", "CircleCI")180 branch_strategy: <branch_strategy>181 pipeline_stages: [string] (e.g. ["lint", "test", "build", "deploy"])182 environments:183 - name: string (e.g. "development", "staging", "production")184 branch: string (e.g. "develop", "staging", "main")185 auto_deploy: boolean186 url_pattern: string (e.g. "{{service}}-dev.{{domain}}")187 database_migrations:188 tool: string (e.g. "Prisma Migrate", "Alembic", "Knex", "TypeORM")189 strategy: string (e.g. "versioned migrations with rollback scripts")190 seed_data: string (e.g. "dev seeds with faker data, staging seeds from anonymized prod")191 rollback_plan: string192 environment_config:193 strategy: <config_strategy>194 feature_flags: string (optional, e.g. "LaunchDarkly", "Unleash", "environment variables")195 config_validation: string (e.g. "Zod schema validation on startup")196197deployment:198 - component: string199 target: string (e.g. "Vercel", "AWS ECS", "Railway")200```201202---203204## Enumerated Types205206### Project Type207| Value | When to Use |208|-------|-------------|209| `app` | Traditional application — web, mobile, desktop, CLI. No AI agents. |210| `agent` | AI agent system — no traditional application UI beyond the agent interface. |211| `hybrid` | Application with embedded AI agents. Most common for modern products. |212213### Frontend Type214| Value | Description |215|-------|-------------|216| `web` | Browser-based (React, Next.js, Vue, Svelte, etc.) |217| `ios` | Native iOS (Swift/SwiftUI) or cross-platform targeting iOS |218| `android` | Native Android (Kotlin) or cross-platform targeting Android |219| `desktop` | Desktop app (Electron, Tauri, native) |220| `cli` | Command-line interface |221| `crm` | CRM / back-office management interface |222| `booking` | Booking / scheduling application |223| `ai-chat` | AI chat / conversational interface |224225### Frontend Rendering (Web Only)226| Value | When to Use |227|-------|-------------|228| `ssr` | Server-side rendering. Best for SEO, dynamic content. |229| `ssg` | Static site generation. Best for content-heavy, infrequently changing pages. |230| `spa` | Single-page application. Best for app-like UX, no SEO needs. |231232### Client-Side Token Storage233| Value | Platform | Description |234|-------|----------|-------------|235| `cookie` | Web | HTTP-only cookies. Most secure for web. |236| `localStorage` | Web | Browser localStorage. Persistent but XSS-vulnerable. |237| `sessionStorage` | Web | Browser sessionStorage. Cleared on tab close. |238| `memory` | Web | In-memory only. Most secure but lost on refresh. |239| `async-storage` | Mobile (RN) | React Native AsyncStorage. Unencrypted. |240| `secure-store` | Mobile (RN) | Expo SecureStore. Uses Keychain/Keystore. |241| `keychain` | Mobile (iOS) | iOS Keychain. Survives reinstalls. |242| `encrypted-shared-prefs` | Mobile (Android) | Android EncryptedSharedPreferences. |243244### Real-Time Protocol245| Value | When to Use |246|-------|-------------|247| `websocket` | Raw WebSocket for bidirectional communication |248| `socket-io` | Socket.IO with auto-reconnect, rooms, namespaces |249| `sse` | Server-Sent Events for one-way streaming (AI responses, live feeds) |250| `polling` | HTTP polling when WebSocket not available |251| `webrtc` | Peer-to-peer audio/video communication |252253### Mobile Permissions254| Value | Description |255|-------|-------------|256| `camera` | Camera access for photos/video |257| `microphone` | Microphone access for audio/calls |258| `contacts` | Address book access |259| `location` | GPS / location services |260| `notifications` | Push notification permission |261| `photos` | Photo library access |262| `calendar` | Calendar access |263| `bluetooth` | Bluetooth device communication |264| `background-audio` | Background audio playback/recording |265266### Service Type267| Value | Description |268|-------|-------------|269| `rest-api` | RESTful HTTP API |270| `graphql` | GraphQL API |271| `websocket` | Real-time bidirectional communication |272| `worker` | Background job processor |273| `cron` | Scheduled task runner |274| `gateway` | API gateway or reverse proxy |275276### Database Type277| Value | Typical Use Case |278|-------|------------------|279| `postgresql` | Relational data, complex queries, transactions |280| `mongodb` | Document storage, flexible schemas |281| `redis` | Caching, sessions, rate limiting, pub/sub |282| `dynamodb` | Key-value at scale, serverless workloads |283| `elasticsearch` | Full-text search, log analytics |284| `mysql` | Relational data, legacy systems |285| `sqlite` | Local/embedded, development, mobile |286| `firestore` | Real-time sync, mobile-first, serverless |287288### Integration Category289| Value | Examples |290|-------|----------|291| `payments` | Stripe, PayPal, Paddle, LemonSqueezy |292| `email` | SendGrid, Resend, AWS SES, Postmark |293| `sms` | Twilio, MessageBird, Vonage |294| `maps` | Google Maps, Mapbox, HERE |295| `auth` | Auth0, Clerk, Firebase Auth, Supabase Auth |296| `storage` | AWS S3, Cloudflare R2, Google Cloud Storage |297| `analytics` | PostHog, Mixpanel, Amplitude, Google Analytics |298| `monitoring` | Sentry, Datadog, Grafana, New Relic |299| `cdn` | Cloudflare, CloudFront, Fastly |300| `search` | Algolia, Typesense, Meilisearch |301| `messaging` | Slack API, Discord API, Telegram Bot API |302| `notifications` | OneSignal, Firebase Cloud Messaging, Novu |303| `ci-cd` | GitHub Actions, GitLab CI, CircleCI |304305### LLM Provider306| Value | Models |307|-------|--------|308| `anthropic` | Claude Haiku, Sonnet, Opus |309| `openai` | GPT-4o, GPT-4o-mini, o1, o3 |310| `google` | Gemini Flash, Gemini Pro |311| `mistral` | Mistral Large, Mistral Small, Codestral |312| `groq` | LLaMA, Mixtral (fast inference) |313| `local` | Ollama, llama.cpp, vLLM |314| `multi` | Multiple providers with fallback/routing |315316### Agent Orchestration317| Value | When to Use |318|-------|-------------|319| `single-turn` | Simple request-response, no reasoning chain needed |320| `react` | Tool-using agent that reasons then acts in a loop |321| `chain-of-thought` | Multi-step reasoning without tool use |322| `multi-agent-router` | Router dispatches to specialist agents sequentially |323| `multi-agent-parallel` | Multiple agents work simultaneously, results merged |324| `plan-and-execute` | Planner creates steps, executor runs them |325| `custom` | Novel orchestration pattern — describe in detail |326327### Agent Tool Type328| Value | Description |329|-------|-------------|330| `api-call` | Calls an external HTTP API |331| `database-query` | Reads from or writes to a database |332| `web-search` | Searches the web for information |333| `code-execution` | Runs code in a sandbox |334| `file-io` | Reads or writes files |335| `browser` | Navigates web pages, scrapes content |336| `human-handoff` | Escalates to a human operator |337| `agent-delegate` | Delegates to another agent |338| `custom` | Custom tool — describe in detail |339340### Agent Interface341| Value | Description |342|-------|-------------|343| `chat-ui` | Web-based chat interface |344| `api` | Programmatic API (no UI) |345| `slack-bot` | Slack workspace bot |346| `discord-bot` | Discord server bot |347| `cli` | Command-line interface |348| `email` | Email-based interaction |349| `voice` | Voice interface (phone, smart speaker) |350351### Architecture Pattern352| Value | When to Use |353|-------|-------------|354| `clean-architecture` | Layered with strict dependency inversion (domain → use cases → adapters → frameworks). Best for complex business logic. |355| `hexagonal` | Ports and adapters. Similar to clean architecture but emphasizes interchangeable external integrations. |356| `mvc` | Model-View-Controller. Simple apps, server-rendered pages, CRUD-heavy products. |357| `mvvm` | Model-View-ViewModel. Mobile apps, reactive UIs with data binding. |358| `modular-monolith` | Monolith organized into self-contained modules with clear boundaries. Good starting point before microservices. |359| `microservices` | Independent deployable services with own databases. Only when team/scale justifies the overhead. |360| `serverless` | Functions as compute units (Lambda, Cloud Functions). Event-driven, low-traffic, or bursty workloads. |361| `event-driven` | Components communicate through events/messages. Decoupled, async-first. |362| `cqrs` | Command Query Responsibility Segregation. Separate read/write models. Complex domains with different read/write patterns. |363| `layered` | Simple horizontal layers (presentation → business → data). Straightforward CRUD apps. |364365### Folder Convention366| Value | Structure | Best For |367|-------|-----------|----------|368| `feature-based` | `src/features/auth/`, `src/features/orders/`, `src/features/payments/` | Most apps. Groups related code (routes, services, models) by feature. |369| `layer-based` | `src/controllers/`, `src/services/`, `src/models/`, `src/repositories/` | Simple CRUD apps. Groups by technical layer. |370| `domain-driven` | `src/domain/`, `src/application/`, `src/infrastructure/`, `src/presentation/` | Clean/hexagonal architecture. Enforces dependency direction. |371| `module-based` | `src/modules/auth/`, `src/modules/billing/` with internal layers per module | Modular monoliths. Each module is self-contained. |372| `flat` | `src/` with files grouped loosely | Small services, workers, single-purpose microservices. |373374### Shared Contract Type375| Value | Description |376|-------|-------------|377| `api-schema` | OpenAPI / JSON Schema defining REST API contracts between services |378| `event-schema` | Event payload schema (e.g. CloudEvents, AsyncAPI) for message queues / event bus |379| `proto-definition` | Protocol Buffer definition for gRPC services |380| `graphql-schema` | Shared GraphQL type definitions |381| `typescript-types` | Shared TypeScript type/interface package |382| `json-schema` | Generic JSON Schema used for validation across services |383384### Branch Strategy385| Value | When to Use |386|-------|-------------|387| `github-flow` | Single main branch + feature branches. Simple. Best for most startups and small teams. |388| `gitflow` | develop + main + feature/release/hotfix branches. Best for products with scheduled releases. |389| `trunk-based` | Everyone commits to main with short-lived feature branches (<1 day). Best for CI/CD-mature teams. |390| `release-branching` | Main + release branches (release/1.0, release/1.1). Best for products with multiple supported versions. |391392### Config Strategy393| Value | Description |394|-------|-------------|395| `env-vars` | Environment variables (.env files locally, platform env vars in production). Simplest approach. |396| `config-service` | Centralized config management (Doppler, AWS Parameter Store, HashiCorp Vault). Best for multi-service architectures. |397| `file-based` | Config files per environment (config.dev.json, config.prod.json). Best for simple apps. |398| `hybrid` | Secrets in a config service, non-sensitive config in env vars or files. Best balance of security and simplicity. |399400### Communication Pattern401| Value | When to Use |402|-------|-------------|403| `rest` | Standard request-response between services |404| `graphql` | Flexible queries from frontend to backend |405| `websocket` | Real-time bidirectional (chat, live updates) |406| `grpc` | High-performance service-to-service |407| `message-queue` | Async processing (SQS, RabbitMQ, BullMQ) |408| `event-bus` | Event-driven decoupled services (EventBridge, Kafka) |409| `sse` | Server-to-client streaming (AI responses, live feeds) |410411---412413## Example Manifest Snippet414415```yaml416project:417 name: "SupportBot Pro"418 type: hybrid419 description: "AI-powered customer support platform with human escalation"420421users:422 - role: customer423 description: "End users seeking support"424 count_estimate: "1,000-10,000 MAU"425 - role: support-agent426 description: "Human support staff handling escalations"427 count_estimate: "5-20"428 - role: admin429 description: "Manages knowledge base, views analytics"430 count_estimate: "1-3"431432frontends:433 - name: customer-widget434 type: web435 framework: React436 pages: [chat-widget, ticket-history]437 build_tool: Vite438 rendering: spa439 state_management: Zustand440 data_fetching: React Query441 api_client: fetch442 styling: Tailwind CSS443 deploy_target: Vercel444 dev_port: 3001445 backend_connections:446 - { service: api-server, purpose: "Ticket CRUD and history" }447 - { service: agent-service, purpose: "Real-time AI chat" }448 client_auth:449 token_storage: cookie450 csrf_protection: true451 token_refresh: true452 realtime:453 protocol: websocket454 monitoring:455 error_tracking: Sentry456 - name: agent-dashboard457 type: web458 framework: Next.js459 pages: [inbox, conversation-view, knowledge-base, analytics]460 build_tool: Webpack461 rendering: ssr462 state_management: Zustand463 data_fetching: React Query464 component_library: Radix UI465 form_handling: React Hook Form466 validation: Zod467 styling: Tailwind CSS468 routing: Next.js App Router469 deploy_target: Vercel470 dev_port: 3000471 backend_connections:472 - { service: api-server, purpose: "All admin and agent operations" }473 client_auth:474 token_storage: cookie475 token_refresh: true476 monitoring:477 error_tracking: Sentry478 analytics: PostHog479480services:481 - name: api-server482 type: rest-api483 framework: Node.js/Express484 responsibilities: [auth, ticket-management, knowledge-base-crud]485 - name: agent-service486 type: websocket487 framework: Node.js488 responsibilities: [ai-agent-orchestration, streaming-responses]489490databases:491 - name: primary-db492 type: postgresql493 purpose: primary494 key_collections: [users, tickets, conversations, knowledge_articles]495 - name: vector-db496 type: postgresql497 purpose: vector-store498 key_collections: [knowledge_embeddings]499 - name: cache500 type: redis501 purpose: cache502 key_collections: [sessions, rate_limits]503504agents:505 - name: support-agent506 purpose: "Answer customer questions using knowledge base, escalate complex issues"507 llm_provider: anthropic508 model: claude-sonnet509 orchestration: react510 interface: chat-ui511 tools:512 - name: search-knowledge-base513 type: database-query514 description: "Vector search over knowledge articles"515 - name: create-ticket516 type: api-call517 description: "Create support ticket for human follow-up"518 - name: human-handoff519 type: human-handoff520 description: "Transfer conversation to human agent"521 memory: persistent522 guardrails:523 - "Never make promises about refunds or policy changes"524 - "Always disclose that you are an AI when asked"525 - "Escalate to human if confidence is low or customer is upset"526527shared:528 types:529 - name: User530 description: "Core user type shared across API and dashboard"531 used_by: [api-server, agent-dashboard]532 fields: [id, email, role, displayName, createdAt]533 - name: Ticket534 description: "Support ticket shared between API, agent, and dashboard"535 used_by: [api-server, agent-service, agent-dashboard]536 fields: [id, customerId, subject, status, priority, messages[], assignedTo]537 - name: KnowledgeArticle538 description: "Knowledge base article used by API and AI agent"539 used_by: [api-server, support-agent]540 fields: [id, title, content, embedding, category, updatedAt]541 libraries:542 - name: shared-types543 purpose: "TypeScript type definitions shared across all Node.js services"544 used_by: [api-server, agent-service, agent-dashboard, customer-widget]545 - name: shared-validators546 purpose: "Zod schemas for request/response validation"547 used_by: [api-server, agent-service]548 contracts:549 - name: ticket-events550 type: event-schema551 description: "Event payloads for ticket lifecycle (created, assigned, resolved, escalated)"552 between: [api-server, agent-service]553 - name: api-contract554 type: api-schema555 description: "OpenAPI spec for the REST API consumed by frontends"556 between: [api-server, customer-widget, agent-dashboard]557558application_patterns:559 architecture: clean-architecture560 principles:561 - "Dependency inversion — domain layer has zero external dependencies"562 - "Single responsibility — each service owns one bounded context"563 - "Interface segregation — clients depend only on the methods they use"564 - "Fail fast — validate at boundaries, trust internal data"565 folder_convention: feature-based566 error_handling: "Structured error codes with user-friendly messages. Services return {code, message, details}. Frontend maps codes to UI text."567 testing_strategy: "Unit tests for business logic, integration tests for API endpoints, contract tests between api-server and agent-service"568569communication:570 - from: customer-widget571 to: api-server572 pattern: rest573 protocol: HTTPS574 auth: JWT bearer575 data_format: JSON576 - from: customer-widget577 to: agent-service578 pattern: websocket579 protocol: WSS580 auth: JWT bearer581 data_format: JSON582 - from: agent-dashboard583 to: api-server584 pattern: rest585 protocol: HTTPS586 auth: JWT bearer587 data_format: JSON588 - from: agent-service589 to: api-server590 pattern: rest591 protocol: HTTP (internal)592 auth: API key593 data_format: JSON594 notes: "Internal service-to-service call for ticket operations"595 - from: api-server596 to: agent-service597 pattern: message-queue598 protocol: Redis/BullMQ599 auth: none (internal)600 data_format: JSON601 retry_strategy: "exponential backoff, 3 retries"602 notes: "Async ticket assignment and AI processing"603604security:605 auth_strategy: "JWT with refresh tokens via Clerk"606 api_security:607 - name: rate-limiting608 implementation: "Upstash Ratelimit — 100 requests/min per user"609 applies_to: [api-server]610 - name: input-validation611 implementation: "Zod schemas on all request bodies"612 applies_to: [api-server, agent-service]613 - name: cors614 implementation: "Whitelist customer-widget and agent-dashboard origins only"615 applies_to: [api-server]616 - name: helmet-headers617 implementation: "helmet middleware for CSP, HSTS, X-Frame-Options"618 applies_to: [api-server]619 data_protection:620 encryption_at_rest: "AES-256 via Supabase (PostgreSQL) default encryption"621 encryption_in_transit: "TLS 1.3 on all external endpoints"622 pii_fields: [email, displayName, phone]623 data_retention: "User data retained while account active, deleted 30 days after account deletion"624 secrets_management: "Vercel environment variables for production, .env files for local development"625 owasp_considerations:626 - threat: "Broken access control"627 mitigation: "Role-based middleware on every route. Support agents can't access admin endpoints."628 - threat: "Injection"629 mitigation: "Prisma parameterized queries. Zod validation on all inputs."630 - threat: "SSRF"631 mitigation: "Agent tool URLs whitelisted. No user-provided URLs fetched server-side."632633observability:634 logging:635 strategy: "Structured JSON logs via pino"636 provider: "Axiom (free tier)"637 log_levels: [error, warn, info, debug]638 tracing:639 enabled: false640 provider: "Not needed at MVP stage"641 instrumented_services: []642 metrics:643 provider: "Vercel Analytics + Sentry performance"644 key_metrics: ["request latency p99", "error rate", "queue depth", "AI response time"]645 alerting:646 provider: "Sentry + Slack webhook"647 critical_alerts: ["error rate > 5%", "api-server down", "agent-service queue backlog > 500"]648 health_checks:649 - component: api-server650 endpoint: "/health"651 checks: ["PostgreSQL connectivity", "Redis connectivity"]652 - component: agent-service653 endpoint: "/health"654 checks: ["Redis connectivity", "Anthropic API reachability"]655656devops:657 cicd:658 provider: "GitHub Actions"659 branch_strategy: github-flow660 pipeline_stages: [lint, test, build, deploy]661 environments:662 - name: staging663 branch: develop664 auto_deploy: true665 url_pattern: "{{service}}-staging.vercel.app"666 - name: production667 branch: main668 auto_deploy: true669 url_pattern: "{{service}}.vercel.app"670 database_migrations:671 tool: "Prisma Migrate"672 strategy: "Versioned migrations committed to git. Run automatically in CI before deploy."673 seed_data: "Dev seeds with faker.js for local development"674 rollback_plan: "Prisma migrate rollback for failed migrations. Manual SQL for data fixes."675 environment_config:676 strategy: env-vars677 feature_flags: "Environment variables (ENABLE_AI_AGENT=true/false) for MVP"678 config_validation: "Zod schema validates all env vars on service startup"679```680681---682> Converted and distributed by [TomeVault](https://tomevault.io/claim/navraj007in) — claim your Tome and manage your conversions.683<!-- tomevault:4.0:skill_md:2026-04-15 -->