| name | manifest-structure |
| description | Canonical system manifest format with all enumerated types for project, frontend, service, database, integration, LLM, agent, and communication components. Use when structuring architecture output. |
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")