Productionization Approach
How to take PULSE as an accelerator and deploy to customers
Accelerator Philosophy
PULSE is designed as a configurable accelerator, not a one-off solution. Core logic remains unchanged across deployments. Only configuration and branding change per customer.
80%
Reusable Core
15%
Configuration
5%
Custom Extensions
Accelerator Components
Core Accelerator
Excel Parsing Engine
Generic XLSX parser with configurable schema mapping
Anomaly Detection Framework
Pluggable detection rules with threshold configuration
Pipeline Builder UI
Visual workflow designer for QC pipelines
Context Search Agent
Hypothesis-driven web search with customizable buckets
Integration Layer
Jira MCP Connector
Pre-built ticket creation with field mapping
Email Service Adapter
Template-based email generation
SSO/Auth Framework
Pluggable authentication providers
Webhook System
Event-driven notifications to external systems
UI Components
Spreadsheet Viewer
Excel-like display with cell selection
Anomaly Dashboard
Summary cards, charts, and drill-down views
Review Workflow UI
Human-in-loop approval components
Configuration Panels
Admin UI for rules and thresholds
Configuration Layers
All customer-specific settings are externalized into configuration files. No code changes required for standard deployments.
Environment Config
API keys, service URLs, feature flags
.env.production.env.staging.env.local
# Customer-specific environment NEXT_PUBLIC_CUSTOMER_ID=circana JIRA_PROJECT_KEY=CIRQC JIRA_HOST=circana.atlassian.net EMAIL_FROM=qcbot@circana.com ANOMALY_THRESHOLD_VARIANCE=0.02
Branding Config
Colors, logos, fonts, terminology
branding/config.jsontailwind.config.ts
{
"name": "PULSE",
"primaryColor": "#5B2E91",
"logo": "/circana-logo.svg",
"terminology": {
"anomaly": "variance",
"ticket": "case"
}
}Detection Rules
Anomaly types, thresholds, categorization
config/rules.jsonconfig/thresholds.json
{
"rules": [
{
"id": "store_dropout",
"threshold": 0.05,
"severity": "critical",
"action": "create_ticket"
}
]
}Integration Config
Jira fields, email templates, webhooks
config/integrations.json
{
"jira": {
"project": "CIRQC",
"issueType": "Bug",
"customFields": {
"dataSource": "customfield_10001"
}
}
}Deployment Options
Vercel (SaaS)
Pros
- Zero infrastructure management
- Auto-scaling
- Global CDN
- Preview deployments
Considerations
- - Less control
- - Egress costs at scale
Best for: POC, pilot programs, small teams
AWS (Self-Hosted)
Pros
- Full control
- VPC integration
- Compliance ready
- Custom scaling
Considerations
- - More ops overhead
- - Longer setup
Best for: Enterprise, regulated industries
Customer Cloud
Pros
- Data stays in customer env
- SSO integration
- Audit compliance
Considerations
- - Deployment complexity
- - Support overhead
Best for: Highly regulated, data-sensitive clients
Customer Onboarding Process
Standard onboarding takes 10-15 working days from kickoff to go-live.
1
Discovery
1-2 daysGather requirements
Map data sources
Define anomaly types
Identify integrations
2
Configuration
2-3 daysSet up environment
Configure branding
Define detection rules
Map Jira fields
3
Data Mapping
2-4 daysAnalyze Excel structure
Create schema mappings
Define hierarchies
Set up test data
4
Integration
2-3 daysConnect Jira/ServiceNow
Configure email service
Set up SSO
Test webhooks
5
Testing
2-3 daysEnd-to-end testing
UAT with pilot users
Performance validation
Security review
6
Go-Live
1 dayProduction deployment
Monitoring setup
Documentation handoff
Support transition
Repository Structure
Core Accelerator (Shared)
qc-bot-accelerator/ ├── src/ │ ├── app/ # Next.js pages │ ├── components/ # Reusable UI components │ │ ├── demo/ # Pipeline, anomaly UI │ │ ├── layout/ # Header, nav, footer │ │ └── ui/ # Shared components │ ├── lib/ │ │ ├── agents/ # Detection, context agents │ │ ├── pipeline/ # Pipeline builder core │ │ └── utils/ # Excel parsing, helpers │ └── data/ # Schema definitions ├── config/ │ └── defaults/ # Default configurations └── package.json
Customer Instance
qc-bot-circana/ ├── config/ │ ├── branding.json # Colors, logo, terms │ ├── rules.json # Detection rules │ ├── integrations.json # Jira, email config │ └── thresholds.json # Per-metric thresholds ├── public/ │ └── logo.svg # Customer logo ├── .env.production # API keys, URLs └── package.json # Extends accelerator
Version Management
Customer instances reference specific accelerator versions via npm/git. Updates to core are pulled in via dependency updates, allowing customers to stay on stable versions while benefiting from improvements.
CI/CD Pipeline
Push to main
Run Tests
Build
Deploy Staging
E2E Tests
Deploy Prod
GitHub Actions (Recommended)
Pre-built workflows for test, build, deploy. Works with Vercel, AWS, Azure.
Environment Promotion
Dev → Staging → Production with approval gates and rollback support.
Quick Start: New Customer Deployment
# 1. Clone accelerator template npx create-qc-bot my-customer-qcbot # 2. Configure branding cp branding/circana.json config/branding.json # Edit config/branding.json with customer colors/logo # 3. Set up environment cp .env.example .env.production # Add customer-specific API keys and URLs # 4. Configure detection rules # Edit config/rules.json with customer thresholds # 5. Test locally npm run dev # 6. Deploy npm run deploy:production
With proper configuration externalization, a new customer deployment can be completed in 2-3 weeks including testing and training.