Introduction
Domain Packs are pre-built bundles including skills + tools + prompts specific to a specific industry. Instead of the generic agent, the user selects "Healthcare Pack" and immediately gets medical tools, clinical prompts, and HIPAA compliance checks.
1. Domain Pack Architecture
// packages/domains/src/types.ts
export interface DomainPack {
id: string;
name: string;
slug: string;
description: string;
version: string;
icon: string;
color: string;
skills: SkillDefinition[];
systemPrompt: string; // Domain-specific base prompt
suggestedQuestions: string[]; // Quick-start examples
complianceRules?: ComplianceRule[];
requiredPermissions?: string[];
}
export interface ComplianceRule {
id: string;
name: string;
description: string;
check: (message: string) => boolean;
action: 'warn' | 'block' | 'redact';
}
2. Healthcare Domain Pack
// packages/domains/src/packs/healthcare.ts
export const healthcarePack: DomainPack = {
id: 'healthcare',
name: 'Healthcare & Medical',
slug: 'healthcare',
description: 'Medical AI assistant with clinical tools and HIPAA compliance',
version: '1.0.0',
icon: '🏥',
color: '#10b981',
systemPrompt: `You are a medical AI assistant. Guidelines:
- Always cite medical sources (PubMed, clinical guidelines)
- Include appropriate disclaimers for medical advice
- Follow HIPAA compliance for patient data
- Use ICD-10 codes when relevant
- Recommend professional consultation for diagnoses`,
suggestedQuestions: [
'Explain the mechanism of action of metformin',
'What are the differential diagnoses for chest pain?',
'Summarize the latest guidelines for hypertension management',
],
skills: [
defineSkill({
id: 'medical-search',
name: 'Medical Literature Search',
description: 'Search PubMed and medical databases',
version: '1.0.0',
tools: [
{
definition: {
name: 'pubmed_search',
description: 'Search PubMed for medical literature',
parameters: {
type: 'object',
properties: {
query: { type: 'string', description: 'Medical search query' },
maxResults: { type: 'number', description: 'Max results (1-20)' },
},
required: ['query'],
},
},
handler: pubmedSearchHandler,
},
{
definition: {
name: 'drug_interaction_check',
description: 'Check for drug-drug interactions',
parameters: {
type: 'object',
properties: {
drugs: { type: 'string', description: 'Comma-separated drug names' },
},
required: ['drugs'],
},
},
handler: drugInteractionHandler,
},
{
definition: {
name: 'icd10_lookup',
description: 'Look up ICD-10 diagnosis codes',
parameters: {
type: 'object',
properties: {
query: { type: 'string', description: 'Condition or symptom' },
},
required: ['query'],
},
},
handler: icd10LookupHandler,
},
],
}),
],
complianceRules: [
{
id: 'hipaa-phi',
name: 'HIPAA PHI Detection',
description: 'Detect and redact Protected Health Information',
check: (message) => {
// Detect SSN, patient IDs, etc.
return /\b\d{3}-\d{2}-\d{4}\b/.test(message) ||
/patient\s+id:\s*\w+/i.test(message);
},
action: 'redact',
},
],
};
3. Domain Pack Registry
// packages/domains/src/domain-registry.ts
export class DomainRegistry {
private packs = new Map<string, DomainPack>();
register(pack: DomainPack) {
this.packs.set(pack.id, pack);
}
get(id: string): DomainPack | undefined {
return this.packs.get(id);
}
listAll(): DomainPack[] {
return Array.from(this.packs.values());
}
// Activate domain for a session
activateForSession(
domainId: string,
sessionId: string,
skillManager: SkillManager,
): void {
const pack = this.packs.get(domainId);
if (!pack) throw new Error(`Domain pack not found: ${domainId}`);
// Register all skills from the pack
for (const skill of pack.skills) {
skillManager.register(skill);
skillManager.activate(sessionId, skill.id);
}
}
}
4. Available Domain Packs in xClaw
| Pack | Tools | Use Case |
|---|---|---|
| Healthcare | PubMed search, Drug interactions, ICD-10 | Medical AI assistant |
| Legal | Case law search, Contract analysis, Compliance | Legal research |
| Finance | Market data, Financial analysis, Risk scoring | Financial advisor |
| Education | Quiz generator, Curriculum builder, Grading | EdTech AI |
| DevOps | Log analysis, Infrastructure check, AlertManager | SRE assistant |
| Customer Support | Ticket search, FAQ retrieval, Sentiment analysis | Support bot |
| Content | SEO analysis, Content calendar, Social post gen | Content marketing |
| HR | Resume parser, Job matching, Interview questions | HR automation |
| E-commerce | Product search, Price comparison, Review analysis | Shopping assistant |
| Data Analysis | SQL generation, Chart creation, Statistical tests | Data analyst |
| Research | Paper search, Citation manager, Literature review | Academic research |
| Creative | Image prompts, Story generator, Brand naming | Creative AI |
| Security | CVE lookup, SIEM analysis, Threat intelligence | Security analyst |
5. Summary
- Domain Packs = pre-built bundles (skills + prompts + compliance)
- Registry pattern — plug-and-play activation
- Compliance rules — domain-specific safety checks
- Scalability — each pack is an independent package, can be published separately
Next article: Plugin System & MCP Protocol.