- Auth: Login/Register con creacion de clinica - Dashboard: KPIs reales, graficas recharts - Pacientes: CRUD completo con busqueda - Agenda: FullCalendar, drag-and-drop, vista recepcion - Expediente: Notas SOAP, signos vitales, CIE-10 - Facturacion: Facturas con IVA, campos CFDI SAT - Inventario: Productos, stock, movimientos, alertas - Configuracion: Clinica, equipo, catalogo servicios - Supabase self-hosted: 18 tablas con RLS multi-tenant - Docker + Nginx para produccion Co-Authored-By: claude-flow <ruv@ruv.net>
272 lines
5.9 KiB
JSON
272 lines
5.9 KiB
JSON
{
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Bash",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs pre-bash",
|
|
"timeout": 5000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "Write|Edit|MultiEdit",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs post-edit",
|
|
"timeout": 10000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"UserPromptSubmit": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs route",
|
|
"timeout": 10000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionStart": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs session-restore",
|
|
"timeout": 15000
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/auto-memory-hook.mjs import",
|
|
"timeout": 8000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionEnd": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs session-end",
|
|
"timeout": 10000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"Stop": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/auto-memory-hook.mjs sync",
|
|
"timeout": 10000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreCompact": [
|
|
{
|
|
"matcher": "manual",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs compact-manual"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs session-end",
|
|
"timeout": 5000
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "auto",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs compact-auto"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs session-end",
|
|
"timeout": 6000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SubagentStart": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node .claude/helpers/hook-handler.cjs status",
|
|
"timeout": 3000
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"statusLine": {
|
|
"type": "command",
|
|
"command": "node .claude/helpers/statusline.cjs"
|
|
},
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(npx @claude-flow*)",
|
|
"Bash(npx claude-flow*)",
|
|
"Bash(node .claude/*)",
|
|
"mcp__claude-flow__:*"
|
|
],
|
|
"deny": [
|
|
"Read(./.env)",
|
|
"Read(./.env.*)"
|
|
]
|
|
},
|
|
"attribution": {
|
|
"commit": "Co-Authored-By: claude-flow <ruv@ruv.net>",
|
|
"pr": "🤖 Generated with [claude-flow](https://github.com/ruvnet/claude-flow)"
|
|
},
|
|
"env": {
|
|
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
|
|
"CLAUDE_FLOW_V3_ENABLED": "true",
|
|
"CLAUDE_FLOW_HOOKS_ENABLED": "true"
|
|
},
|
|
"claudeFlow": {
|
|
"version": "3.0.0",
|
|
"enabled": true,
|
|
"modelPreferences": {
|
|
"default": "claude-opus-4-6",
|
|
"routing": "claude-haiku-4-5-20251001"
|
|
},
|
|
"agentTeams": {
|
|
"enabled": true,
|
|
"teammateMode": "auto",
|
|
"taskListEnabled": true,
|
|
"mailboxEnabled": true,
|
|
"coordination": {
|
|
"autoAssignOnIdle": true,
|
|
"trainPatternsOnComplete": true,
|
|
"notifyLeadOnComplete": true,
|
|
"sharedMemoryNamespace": "agent-teams"
|
|
},
|
|
"hooks": {
|
|
"teammateIdle": {
|
|
"enabled": true,
|
|
"autoAssign": true,
|
|
"checkTaskList": true
|
|
},
|
|
"taskCompleted": {
|
|
"enabled": true,
|
|
"trainPatterns": true,
|
|
"notifyLead": true
|
|
}
|
|
}
|
|
},
|
|
"swarm": {
|
|
"topology": "hierarchical-mesh",
|
|
"maxAgents": 15
|
|
},
|
|
"memory": {
|
|
"backend": "hybrid",
|
|
"enableHNSW": true,
|
|
"learningBridge": {
|
|
"enabled": true
|
|
},
|
|
"memoryGraph": {
|
|
"enabled": true
|
|
},
|
|
"agentScopes": {
|
|
"enabled": true
|
|
}
|
|
},
|
|
"neural": {
|
|
"enabled": true
|
|
},
|
|
"daemon": {
|
|
"autoStart": true,
|
|
"workers": [
|
|
"map",
|
|
"audit",
|
|
"optimize",
|
|
"consolidate",
|
|
"testgaps",
|
|
"ultralearn",
|
|
"deepdive",
|
|
"document",
|
|
"refactor",
|
|
"benchmark"
|
|
],
|
|
"schedules": {
|
|
"audit": {
|
|
"interval": "1h",
|
|
"priority": "critical"
|
|
},
|
|
"optimize": {
|
|
"interval": "30m",
|
|
"priority": "high"
|
|
},
|
|
"consolidate": {
|
|
"interval": "2h",
|
|
"priority": "low"
|
|
},
|
|
"document": {
|
|
"interval": "1h",
|
|
"priority": "normal",
|
|
"triggers": [
|
|
"adr-update",
|
|
"api-change"
|
|
]
|
|
},
|
|
"deepdive": {
|
|
"interval": "4h",
|
|
"priority": "normal",
|
|
"triggers": [
|
|
"complex-change"
|
|
]
|
|
},
|
|
"ultralearn": {
|
|
"interval": "1h",
|
|
"priority": "normal"
|
|
}
|
|
}
|
|
},
|
|
"learning": {
|
|
"enabled": true,
|
|
"autoTrain": true,
|
|
"patterns": [
|
|
"coordination",
|
|
"optimization",
|
|
"prediction"
|
|
],
|
|
"retention": {
|
|
"shortTerm": "24h",
|
|
"longTerm": "30d"
|
|
}
|
|
},
|
|
"adr": {
|
|
"autoGenerate": true,
|
|
"directory": "/docs/adr",
|
|
"template": "madr"
|
|
},
|
|
"ddd": {
|
|
"trackDomains": true,
|
|
"validateBoundedContexts": true,
|
|
"directory": "/docs/ddd"
|
|
},
|
|
"security": {
|
|
"autoScan": true,
|
|
"scanOnEdit": true,
|
|
"cveCheck": true,
|
|
"threatModel": true
|
|
}
|
|
}
|
|
} |