{"id":9207,"name":"DiezXSuite","description":"A Business Observability platform for mid-market companies: it shows how your company operates in real time and lets you act from there. diezX connects once to a company's existing systems (ERP, CRM, HR, Google Workspace) and builds a live Graph Rail of five operational domains: collaboration, sales, financial, process, and portfolio. On top of that graph, four A2A 0.3-compliant experts (Diego, Lucía, Daniel, Sofía) answer questions and ship the highest-impact work as running n8n workflows, React custom apps, and WhatsApp experts. Each expert queries its domain graph before answering. Hosted on Google Cloud (Cloud Run) with inference on Vertex AI. Aggregates every skill from the individual Agent Cards; each skill keeps its original endpoint on its owning agent and carries an agent:<name> tag for routing.","card_url":"https://agents.diezx.ai/.well-known/agent-card.json","endpoint":"https://agents.diezx.ai/api/a2a/suite","protocol_version":"0.3","first_seen":"2026-10-10T07:50:56.679068+00:00","last_verified":"2026-10-10T07:58:56.831056+00:00","card":{"url":"https://agents.diezx.ai/api/a2a/suite","name":"DiezXSuite","skills":[{"id":"explain_process_score","name":"Explain Process Score","tags":["prioritization","scoring","explanation","agent:lucia"],"examples":["¿Por qué reconciliación bancaria tiene score 8.2?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/explain_process_score","description":"Explains why a specific process ranked at a given score, citing scoring weights and process attributes.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId","portfolio","scoringWeights"],"properties":{"portfolio":{"type":"array","items":{"type":"object","required":["processId","processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"source":{"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string","description":"Stable content hash. See x-idStrategy."},"department":{"type":"string"},"finalScore":{"type":"number","maximum":10,"minimum":0},"isAutomated":{"type":"boolean"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"level1Process":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}}},"processId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"scoringWeights":{"type":"object","additionalProperties":{"type":"number"}}}},"x-outputSchema":{"type":"object","required":["explanation","topContributingFactors"],"properties":{"explanation":{"type":"string","maxLength":1500,"x-computeSource":"llm"},"topContributingFactors":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"factor":{"type":"string"},"weight":{"type":"number"},"weightedContribution":{"type":"number"}}},"x-computeSource":"deterministic"}}}},{"id":"connect_interview_to_process","name":"Connect Interview to Process","tags":["interviews","mapping","discrepancy-detection","agent:lucia"],"examples":["¿Qué quotes de las entrevistas matchean con los top 5?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/connect_interview_to_process","description":"Maps pain points from discovery interviews to processes in the portfolio. Flags discrepancies (high frustration vs low score).","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["interviews","portfolio"],"properties":{"portfolio":{"type":"array","items":{"type":"object","required":["processId","processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"source":{"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string","description":"Stable content hash. See x-idStrategy."},"department":{"type":"string"},"finalScore":{"type":"number","maximum":10,"minimum":0},"isAutomated":{"type":"boolean"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"level1Process":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}}},"interviews":{"type":"array","items":{"type":"object","required":["recipientName","department","painPoints"],"properties":{"department":{"type":"string"},"painPoints":{"type":"array","items":{"type":"object","required":["description","frustrationLevel"],"properties":{"frequency":{"enum":["daily","weekly","monthly"],"type":"string"},"description":{"type":"string"},"currentProcess":{"type":"string"},"frustrationLevel":{"enum":["high","medium","low"],"type":"string"},"timeSpentMinutes":{"type":"integer"}}}},"recipientName":{"type":"string"}}}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"type":"object","required":["matches"],"properties":{"matches":{"type":"array","items":{"type":"object","properties":{"painPoint":{"type":"string","x-computeSource":"deterministic"},"interviewee":{"type":"string","x-computeSource":"deterministic"},"discrepancyFlag":{"type":"boolean","x-computeSource":"deterministic"},"matchConfidence":{"enum":["high","medium","low"],"type":"string","x-computeSource":"llm"},"frustrationLevel":{"enum":["high","medium","low"],"type":"string","x-computeSource":"deterministic"},"matchedProcessId":{"type":"string","x-computeSource":"llm"},"matchedProcessScore":{"type":"number","x-computeSource":"deterministic"}}},"x-computeSource":"hybrid"}}}},{"id":"flag_validation_gaps","name":"Flag Validation Gaps","tags":["data-quality","validation","agent:lucia"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/flag_validation_gaps","description":"Returns departments where AI-suggested processes lack human validation, ranked by risk.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["validationStats"],"properties":{"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"validationStats":{"type":"object","required":["totalProcesses","validatedCount","unvalidatedCount"],"properties":{"totalProcesses":{"type":"integer"},"validatedCount":{"type":"integer"},"unvalidatedCount":{"type":"integer"},"unvalidatedByDepartment":{"type":"object","additionalProperties":{"type":"integer"}}}}}},"x-outputSchema":{"type":"object","required":["gaps"],"properties":{"gaps":{"type":"array","items":{"type":"object","properties":{"riskLevel":{"enum":["high","medium","low"],"type":"string","x-computeSource":"deterministic"},"department":{"type":"string","x-computeSource":"deterministic"},"unvalidatedCount":{"type":"integer","x-computeSource":"deterministic"},"recommendedAction":{"type":"string","x-computeSource":"llm"}}}}}}},{"id":"surface_feedback_backlog","name":"Surface Feedback Backlog","tags":["collaboration","review","backlog","agent:lucia"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/surface_feedback_backlog","description":"Lists processes pending review or with unresolved feedback comments.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["feedbackSummary"],"properties":{"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"feedbackSummary":{"type":"object","required":["pendingReviewCount","needsMyReviewProcessNames","unresolvedFeedbackCount"],"properties":{"pendingReviewCount":{"type":"integer"},"unresolvedFeedbackCount":{"type":"integer"},"needsMyReviewProcessNames":{"type":"array","items":{"type":"string"}}}}}},"x-outputSchema":{"type":"object","properties":{"summary":{"type":"string","x-computeSource":"llm"},"actionItems":{"type":"array","items":{"type":"string"},"x-computeSource":"deterministic"}}}},{"id":"compare_departments","name":"Compare Departments","tags":["analysis","comparison","departments","agent:lucia"],"examples":["¿Cómo se compara Operaciones vs Finanzas?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/compare_departments","description":"Side-by-side comparison of departments by avg score, process count, automation rate, and portfolio balance.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["portfolio"],"properties":{"portfolio":{"type":"array","items":{"type":"object","required":["processId","processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"source":{"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string","description":"Stable content hash. See x-idStrategy."},"department":{"type":"string"},"finalScore":{"type":"number","maximum":10,"minimum":0},"isAutomated":{"type":"boolean"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"level1Process":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"departmentsToCompare":{"type":"array","items":{"type":"string"},"description":"Omit to compare all departments."}}},"x-outputSchema":{"type":"object","required":["comparisons","narrative"],"properties":{"narrative":{"type":"string","x-computeSource":"llm"},"comparisons":{"type":"array","items":{"type":"object","properties":{"avgScore":{"type":"number"},"department":{"type":"string"},"processCount":{"type":"integer"},"topProcessIds":{"type":"array","items":{"type":"string"}},"automatedCount":{"type":"integer"},"automationRate":{"type":"number"}}},"x-computeSource":"deterministic"}}}},{"id":"score_new_process","name":"Score New Process","tags":["scoring","estimation","what-if","agent:lucia"],"examples":["¿Qué score tendría un proceso de aprobación de gastos?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/score_new_process","description":"Estimates a score for a candidate process not yet in the portfolio, by invoking the diezX scoring engine and benchmarking against similar processes.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["candidateProcess","scoringWeights"],"properties":{"portfolio":{"type":"array","items":{"type":"object","required":["processId","processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"source":{"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string","description":"Stable content hash. See x-idStrategy."},"department":{"type":"string"},"finalScore":{"type":"number","maximum":10,"minimum":0},"isAutomated":{"type":"boolean"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"level1Process":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}},"description":"Optional — used to find comparable processes for benchmarking."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"scoringWeights":{"type":"object","additionalProperties":{"type":"number"}},"candidateProcess":{"type":"object","required":["processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"department":{"type":"string"},"processName":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}}}},"x-outputSchema":{"type":"object","required":["estimatedScore","confidence","reasoning"],"properties":{"reasoning":{"type":"string","x-computeSource":"llm"},"confidence":{"enum":["high","medium","low"],"type":"string","description":"Based on completeness of input fields.","x-computeSource":"deterministic"},"estimatedScore":{"type":"number","maximum":10,"minimum":0,"description":"From the diezX scoring engine (shared/utils/scoring).","x-computeSource":"deterministic"},"comparableProcessIds":{"type":"array","items":{"type":"string"},"x-computeSource":"deterministic"}}}},{"id":"compare_departments_v2","name":"Compare Departments (v2 — company-scoped)","tags":["analysis","comparison","departments","v2","company-scoped","agent:lucia"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/compare_departments_v2","description":"Same output as compare_departments, but resolves the portfolio from company context (MongoDB) instead of requiring the caller to pass it. Use this variant when calling from external A2A agents that do not have diezX DB access. companyId derived from JWT; body override must match (else 403).","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"departmentsToCompare":{"type":"array","items":{"type":"string"},"description":"Omit to compare all departments."}}},"x-outputSchema":{"$ref":"#/skills/compare_departments/x-outputSchema","description":"Identical to compare_departments v1 output."}},{"id":"connect_interview_to_process_v2","name":"Connect Interview to Process (v2 — company-scoped)","tags":["interviews","mapping","discrepancy-detection","v2","company-scoped","agent:lucia"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/lucia/skills/connect_interview_to_process_v2","description":"Same output as connect_interview_to_process. Interviews still come in the input (they are caller-specific), but the portfolio is resolved from company context (MongoDB). Use this variant when calling from external A2A agents that do not have diezX DB access.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["interviews"],"properties":{"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"interviews":{"type":"array","items":{"type":"object","required":["recipientName","department","painPoints"],"properties":{"department":{"type":"string"},"painPoints":{"type":"array","items":{"type":"object","required":["description","frustrationLevel"],"properties":{"frequency":{"enum":["daily","weekly","monthly"],"type":"string"},"description":{"type":"string"},"currentProcess":{"type":"string"},"frustrationLevel":{"enum":["high","medium","low"],"type":"string"},"timeSpentMinutes":{"type":"integer"}}}},"recipientName":{"type":"string"}}}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"$ref":"#/skills/connect_interview_to_process/x-outputSchema","description":"Identical to connect_interview_to_process v1 output."}},{"id":"validate_automation_design","name":"Validate Automation Design","tags":["execution","validation","pre-deploy","quality","agent:diego"],"examples":["Antes de shipear este workflow, ¿hay algo que falte o esté mal armado?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/validate_automation_design","description":"Pre-deploy gate. Given an AutomationDesign, runs structural checks (orphan approvals, flowGraph integrity, cycles, missing assignees, systems not present in companyTools) and returns an issues list + a narrative recommendation. The issues list is deterministic; the narrative is LLM-generated.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["automationDesign"],"properties":{"companyTools":{"type":"array","items":{"type":"string"},"description":"Optional. Systems already integrated in the company — used to flag systemsUsed entries that are not available."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"automationDesign":{"type":"object","properties":{"flowGraph":{"type":"array","items":{"type":"array","items":{"type":"integer"}},"description":"Adjacency list as array of [from, to] index pairs."},"frequency":{"type":"string"},"systemsUsed":{"type":"array","items":{"type":"string"}},"aiStepModels":{"type":"array","items":{"type":"object","properties":{"stepIndex":{"type":"integer"},"geminiModel":{"type":"string"}}}},"proposedFlow":{"type":"array","items":{"type":"string"}},"executionModel":{"type":"string"},"approvalAssignments":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"assignees":{"type":"array","items":{"type":"string"}},"stepIndex":{"type":"integer"}}}}}}}},"x-outputSchema":{"type":"object","required":["readyToDeploy","issues","narrative"],"properties":{"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"severity":{"enum":["blocker","warning","info"],"type":"string"},"stepIndex":{"type":"integer"}}},"x-computeSource":"deterministic"},"summary":{"type":"object","properties":{"hasCycles":{"type":"boolean"},"stepCount":{"type":"integer"},"systemCount":{"type":"integer"},"approvalCount":{"type":"integer"}},"x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"readyToDeploy":{"type":"boolean","description":"True when there are zero severity=blocker issues.","x-computeSource":"deterministic"}}}},{"id":"assign_implementation_champion","name":"Assign Implementation Champion","tags":["execution","assignment","champions","org-chart","agent:diego"],"examples":["¿Quién del equipo debería liderar la implementación de este workflow de Finanzas?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/assign_implementation_champion","description":"Picks the best person to own deployment of a given automation. Filters candidates deterministically (AI champions first, department match, role match) then the LLM ranks the top shortlist and returns its pick with rationale. Useful when an external agent has the org chart but needs Diego to recommend *who* should ship this.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["process","candidates"],"properties":{"process":{"type":"object","required":["processName"],"properties":{"processId":{"type":"string"},"department":{"type":"string"},"finalScore":{"type":"number"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"}}},"candidates":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"skills":{"type":"array","items":{"type":"string"}},"department":{"type":"string"},"isAiChampion":{"type":"boolean"}}}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"type":"object","required":["pick","rationale","shortlist"],"properties":{"pick":{"type":"object","properties":{"name":{"type":"string","x-computeSource":"llm"},"confidence":{"enum":["high","medium","low"],"type":"string","x-computeSource":"deterministic"}}},"rationale":{"type":"string","x-computeSource":"llm"},"shortlist":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"department":{"type":"string"},"matchScore":{"type":"number"},"matchReasons":{"type":"array","items":{"type":"string"}}}},"x-computeSource":"deterministic"}}}},{"id":"design_automation","name":"Design Automation","tags":["execution","design","workflow","creative","agent:diego"],"examples":["Diseñame el workflow para reconciliación bancaria mensual."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/design_automation","description":"Given a process (name, department, frequency, systems involved, why-it-matters), produces an executable AutomationDesign: ordered proposedFlow, flowGraph (adjacency list), systemsUsed (constrained to companyTools when provided), approvalAssignments with suggested roles, and executionModel. The LLM does the design synthesis; a deterministic post-processor sanitizes the output (drops out-of-bounds edges, self-loops, duplicates, systems not in companyTools, truncates flows >30 steps, infers a linear graph if the model omits edges) and reports every fix in postValidationFixes so the caller can audit.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["process"],"properties":{"process":{"type":"object","required":["processName"],"properties":{"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string"},"department":{"type":"string"},"processName":{"type":"string"},"whyItMatters":{"type":"string"},"monthlyVolume":{"type":"number"},"systemsInvolved":{"type":"array","items":{"type":"string"}},"estimatedHoursPerMonth":{"type":"number"}}},"companyTools":{"type":"array","items":{"type":"string"},"description":"Optional. Constrains systemsUsed to integrations the company already has."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"solutionTypeHint":{"enum":["workflow","custom_app"],"type":"string"}}},"x-outputSchema":{"type":"object","required":["automationDesign","postValidationFixes","narrative"],"properties":{"narrative":{"type":"string","x-computeSource":"llm"},"automationDesign":{"type":"object","properties":{"flowGraph":{"type":"array","items":{"type":"array","items":{"type":"integer"}},"x-computeSource":"llm"},"frequency":{"type":"string","x-computeSource":"llm"},"systemsUsed":{"type":"array","items":{"type":"string"},"x-computeSource":"llm"},"proposedFlow":{"type":"array","items":{"type":"string"},"x-computeSource":"llm"},"executionModel":{"type":"string","x-computeSource":"llm"},"approvalAssignments":{"type":"array","items":{"type":"object"},"x-computeSource":"llm"}},"x-computeSource":"hybrid"},"postValidationFixes":{"type":"array","items":{"type":"string"},"description":"List of fixes the deterministic sanitizer applied to the LLM output. Empty when the model produced a clean design.","x-computeSource":"deterministic"}}}},{"id":"recommend_next_processes","name":"Recommend or Challenge Next Processes","tags":["execution","prioritization","recommendation","challenge","roadmap","agent:diego"],"examples":["¿Qué automatizo primero este trimestre?","Pensaba arrancar con facturación. ¿Tiene sentido?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/recommend_next_processes","description":"Recommends what to automate first from the process portfolio. If proposedOrder is omitted, returns top-N processes to automate next; if proposedOrder is provided, pressure-tests it against portfolio data and returns agreement/concerns/counter-proposal.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["portfolio"],"properties":{"topN":{"type":"integer","default":3,"maximum":10,"minimum":1},"filters":{"type":"object","properties":{"status":{"enum":["manual","automated","any"],"type":"string"},"department":{"type":"string"},"solutionType":{"enum":["workflow","custom_app","any"],"type":"string"}}},"portfolio":{"type":"array","items":{"type":"object","required":["processId","processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"source":{"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string","description":"Stable content hash. See x-idStrategy."},"department":{"type":"string"},"finalScore":{"type":"number","maximum":10,"minimum":0},"isAutomated":{"type":"boolean"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"level1Process":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"proposedOrder":{"type":"array","items":{"type":"string"},"description":"If provided, switches skill to challenge mode. Ordered processIds the caller wants critiqued."},"scoringWeights":{"type":"object","additionalProperties":{"type":"number"}},"interviewInsights":{"type":"array","items":{"type":"object","required":["recipientName","department","painPoints"],"properties":{"department":{"type":"string"},"painPoints":{"type":"array","items":{"type":"object","required":["description","frustrationLevel"],"properties":{"frequency":{"enum":["daily","weekly","monthly"],"type":"string"},"description":{"type":"string"},"currentProcess":{"type":"string"},"frustrationLevel":{"enum":["high","medium","low"],"type":"string"},"timeSpentMinutes":{"type":"integer"}}}},"recipientName":{"type":"string"}}}}}},"x-outputSchema":{"type":"object","required":["mode","rationale"],"properties":{"mode":{"enum":["recommend","challenge"],"type":"string","x-computeSource":"deterministic"},"verdict":{"enum":["agree","agree_with_concerns","disagree"],"type":"string","description":"Only present in challenge mode. Computed from positional match between proposedOrder and counterProposal.","x-computeSource":"deterministic"},"concerns":{"type":"array","items":{"type":"string"},"x-computeSource":"llm"},"rationale":{"type":"string","x-computeSource":"llm"},"counterProposal":{"type":"array","items":{"type":"string"},"x-computeSource":"deterministic"},"recommendations":{"type":"array","items":{"type":"object","required":["processId","rank"],"properties":{"rank":{"type":"integer"},"reason":{"type":"string","x-computeSource":"llm"},"processId":{"type":"string"},"processName":{"type":"string"}}},"x-computeSource":"hybrid"}}}},{"id":"explain_pareto_breakdown","name":"Explain Pareto Breakdown","tags":["execution","pareto","prioritization","analysis","agent:diego"],"examples":["¿Cuál es mi 20/80 de procesos?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/explain_pareto_breakdown","description":"Identifies the top X% of processes by score that account for the bulk of estimated impact (Pareto 20/80).","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["portfolio"],"properties":{"portfolio":{"type":"array","items":{"type":"object","required":["processId","processName"],"properties":{"effort":{"enum":["low","medium","high"],"type":"string"},"source":{"type":"string"},"frequency":{"enum":["daily","weekly","monthly","quarterly","ad-hoc"],"type":"string"},"processId":{"type":"string","description":"Stable content hash. See x-idStrategy."},"department":{"type":"string"},"finalScore":{"type":"number","maximum":10,"minimum":0},"isAutomated":{"type":"boolean"},"processName":{"type":"string"},"solutionType":{"enum":["workflow","custom_app"],"type":"string"},"level1Process":{"type":"string"},"estimatedImpact":{"enum":["low","medium","high"],"type":"string"},"automationPotential":{"type":"number","maximum":10,"minimum":0}}}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"cutoffPercent":{"type":"integer","default":20,"maximum":50,"minimum":5}}},"x-outputSchema":{"type":"object","required":["paretoSet","cumulativeImpactPercent","narrative"],"properties":{"narrative":{"type":"string","x-computeSource":"llm"},"paretoSet":{"type":"array","items":{"type":"string"},"description":"processIds in the top cutoffPercent.","x-computeSource":"deterministic"},"isClassicPareto":{"type":"boolean","description":"True if cutoff% of processes deliver >= 70% of impact.","x-computeSource":"deterministic"},"cumulativeImpactPercent":{"type":"number","x-computeSource":"deterministic"}}}},{"id":"validate_automation_design_v2","name":"Validate Automation Design (v2 — process resolved server-side)","tags":["execution","validation","pre-deploy","v2","company-scoped","agent:diego"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/validate_automation_design_v2","description":"Same output as validate_automation_design, but resolves the AutomationDesign and companyTools from MongoDB given a processId. companyId is derived from the JWT (or passed explicitly in body, must match else 403). Use this variant when calling from external A2A agents that have a process reference but no DB access.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId"],"properties":{"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"processId":{"type":"string","description":"stableProcessId (preferred) or Mongo _id of the process within the caller company."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"$ref":"#/skills/validate_automation_design/x-outputSchema","description":"Identical to validate_automation_design v1 output."}},{"id":"assign_implementation_champion_v2","name":"Assign Implementation Champion (v2 — process + candidates resolved server-side)","tags":["execution","assignment","champions","v2","company-scoped","agent:diego"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/assign_implementation_champion_v2","description":"Same output as assign_implementation_champion, but resolves the process and the candidate pool (active company users with name/department/title/AI-champion flag) from MongoDB given a processId. companyId is derived from the JWT.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId"],"properties":{"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"processId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"$ref":"#/skills/assign_implementation_champion/x-outputSchema","description":"Identical to assign_implementation_champion v1 output."}},{"id":"generate_n8n_workflow","name":"Generate n8n Workflow Skeleton","tags":["execution","n8n","workflow-generation","integrations","agent:diego"],"examples":["Convertí este design en un skeleton de n8n."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/generate_n8n_workflow","description":"Given an AutomationDesign, produces an n8n workflow SKELETON: nodes mapped to native n8n node types using the diezX NATIVE_NODES registry (Hubspot, Salesforce, Slack, Gmail, etc.), with trigger variant for the first step where available, Wait node for approvals, Set node for pure data shaping, and HTTP fallback when no native node matches. Connections derived from the AutomationDesign flowGraph. Per-step nodeMapping is fully deterministic — the LLM only writes a short narrative explaining required credentials and HTTP fallback steps. The output is NOT a fully-valid n8n .json (positions and parameters need a developer pass) but it IS the right starting point.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["automationDesign","processName"],"properties":{"processName":{"type":"string"},"companyTools":{"type":"array","items":{"type":"string"}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"automationDesign":{"type":"object","properties":{"flowGraph":{"type":"array","items":{"type":"array","items":{"type":"integer"}},"description":"Adjacency list as array of [from, to] index pairs."},"frequency":{"type":"string"},"systemsUsed":{"type":"array","items":{"type":"string"}},"aiStepModels":{"type":"array","items":{"type":"object","properties":{"stepIndex":{"type":"integer"},"geminiModel":{"type":"string"}}}},"proposedFlow":{"type":"array","items":{"type":"string"}},"executionModel":{"type":"string"},"approvalAssignments":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"assignees":{"type":"array","items":{"type":"string"}},"stepIndex":{"type":"integer"}}}}}}}},"x-outputSchema":{"type":"object","required":["skeleton","nodeMapping","unmappedSteps","narrative"],"properties":{"skeleton":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"notes":{"type":"string"},"isTrigger":{"type":"boolean"},"credentialType":{"type":"string"}}}},"connections":{"type":"array","items":{"type":"object","properties":{"to":{"type":"string"},"from":{"type":"string"}}}},"workflowName":{"type":"string"}},"x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"nodeMapping":{"type":"array","items":{"type":"object"},"x-computeSource":"deterministic"},"unmappedSteps":{"type":"array","items":{"type":"integer"},"x-computeSource":"deterministic"}}}},{"id":"generate_custom_app_brief","name":"Generate Custom App Brief","tags":["execution","custom-app","design","product-brief","agent:diego"],"examples":["Producí el brief para un dashboard interno de aprobaciones de gastos."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/generate_custom_app_brief","description":"Produces a CustomAppBrief for processes that do NOT fit a linear workflow (dashboards, complex forms, internal mini-apps). Output matches the diezX CustomAppBrief shape: appName, objective, targetUsers, dataSources (constrained to companyTools when provided), coreFeatures (capped at 12), screens (capped at 8) with React/Tailwind component hints, estimatedEffort enum, and goalsAlignment (filtered to caller-supplied goals). The brief is mostly LLM-emitted; a deterministic post-processor caps lists and filters dataSources/goals against allowlists. All fixes recorded in postValidationFixes.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["process"],"properties":{"process":{"type":"object","required":["processName"],"properties":{"processId":{"type":"string"},"department":{"type":"string"},"processName":{"type":"string"},"whyItMatters":{"type":"string"},"systemsInvolved":{"type":"array","items":{"type":"string"}},"estimatedHoursPerMonth":{"type":"number"}}},"companyTools":{"type":"array","items":{"type":"string"}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"goalsAlignment":{"type":"array","items":{"type":"string"},"description":"Optional. The brief's goalsAlignment is filtered to this allowlist."},"targetUserRoles":{"type":"array","items":{"type":"string"}}}},"x-outputSchema":{"type":"object","required":["customAppBrief","postValidationFixes","narrative"],"properties":{"narrative":{"type":"string","x-computeSource":"llm"},"customAppBrief":{"type":"object","x-computeSource":"hybrid"},"postValidationFixes":{"type":"array","items":{"type":"string"},"x-computeSource":"deterministic"}}}},{"id":"diagnose_execution_issue","name":"Diagnose Execution Issue","tags":["execution","diagnosis","troubleshooting","continuous-operation","agent:diego"],"examples":["El workflow falla en el paso 3 con 401 Unauthorized — qué pasó?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/diagnose_execution_issue","description":"Given a symptom (free-text, error message, or execution complaint) plus optionally the AutomationDesign + companyTools + recent logs, returns up to 4 ranked hypotheses with category, confidence, and a concrete suggestedFix per hypothesis. A deterministic categorizer pre-detects common failure modes via regex (auth_or_credential, rate_limit, permission_denied, timeout_or_slow, data_shape_mismatch, integration_missing) and tries to identify the failed step from \"step N\" / \"paso N\" references. The LLM ranks and produces hypotheses, aligned to the pre-detected categories when evidence is strong.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["symptom"],"properties":{"symptom":{"type":"string"},"recentLogs":{"type":"string"},"companyTools":{"type":"array","items":{"type":"string"}},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"failedStepIndex":{"type":"integer"},"automationDesign":{"type":"object","properties":{"flowGraph":{"type":"array","items":{"type":"array","items":{"type":"integer"}},"description":"Adjacency list as array of [from, to] index pairs."},"frequency":{"type":"string"},"systemsUsed":{"type":"array","items":{"type":"string"}},"aiStepModels":{"type":"array","items":{"type":"object","properties":{"stepIndex":{"type":"integer"},"geminiModel":{"type":"string"}}}},"proposedFlow":{"type":"array","items":{"type":"string"}},"executionModel":{"type":"string"},"approvalAssignments":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"assignees":{"type":"array","items":{"type":"string"}},"stepIndex":{"type":"integer"}}}}}}}},"x-outputSchema":{"type":"object","required":["detectedCategories","hypotheses","narrative"],"properties":{"narrative":{"type":"string","x-computeSource":"llm"},"failedStep":{"type":"object","properties":{"index":{"type":"integer"},"description":{"type":"string"}},"x-computeSource":"deterministic"},"hypotheses":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"category":{"type":"string"},"confidence":{"enum":["high","medium","low"],"type":"string"},"hypothesis":{"type":"string"},"suggestedFix":{"type":"string"}}},"x-computeSource":"llm"},"detectedCategories":{"type":"array","items":{"enum":["auth_or_credential","rate_limit","integration_missing","data_shape_mismatch","timeout_or_slow","permission_denied","unknown"],"type":"string"},"x-computeSource":"deterministic"}}}},{"id":"generate_n8n_workflow_v2","name":"Generate n8n Workflow Skeleton (v2 — process resolved server-side)","tags":["execution","n8n","workflow-generation","v2","company-scoped","agent:diego"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/generate_n8n_workflow_v2","description":"Same output as generate_n8n_workflow, but resolves the AutomationDesign + companyTools from MongoDB given a processId. Errors with 400 if the process has no automationDesign yet (suggests running design_automation first).","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId"],"properties":{"companyId":{"type":"string"},"processId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"$ref":"#/skills/generate_n8n_workflow/x-outputSchema","description":"Identical to generate_n8n_workflow v1 output."}},{"id":"generate_custom_app_brief_v2","name":"Generate Custom App Brief (v2 — process resolved server-side)","tags":["execution","custom-app","v2","company-scoped","agent:diego"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/generate_custom_app_brief_v2","description":"Same output as generate_custom_app_brief, but resolves the process and companyTools from MongoDB given a processId. goalsAlignment and targetUserRoles can still be supplied in the body (they are caller-specific context).","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId"],"properties":{"companyId":{"type":"string"},"processId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"goalsAlignment":{"type":"array","items":{"type":"string"}},"targetUserRoles":{"type":"array","items":{"type":"string"}}}},"x-outputSchema":{"$ref":"#/skills/generate_custom_app_brief/x-outputSchema","description":"Identical to generate_custom_app_brief v1 output."}},{"id":"diagnose_execution_issue_v2","name":"Diagnose Execution Issue (v2 — process resolved server-side)","tags":["execution","diagnosis","troubleshooting","v2","company-scoped","agent:diego"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/diagnose_execution_issue_v2","description":"Same output as diagnose_execution_issue, but resolves the AutomationDesign and companyTools from MongoDB given a processId. The symptom is still required in the body — that is the caller-specific context.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId","symptom"],"properties":{"symptom":{"type":"string"},"companyId":{"type":"string"},"processId":{"type":"string"},"recentLogs":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"failedStepIndex":{"type":"integer"}}},"x-outputSchema":{"$ref":"#/skills/diagnose_execution_issue/x-outputSchema","description":"Identical to diagnose_execution_issue v1 output."}},{"id":"recommend_next_processes_v2","name":"Recommend or Challenge Next Processes (v2 — company-scoped)","tags":["execution","prioritization","recommendation","challenge","roadmap","v2","company-scoped","agent:diego"],"examples":["¿Qué automatizo primero este trimestre? (external A2A agent, no portfolio)","Compare el orden [procId1, procId2, procId3] contra el óptimo."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/recommend_next_processes_v2","description":"Same output as recommend_next_processes, but resolves the portfolio from company context (MongoDB) instead of requiring the caller to pass it. Use this variant when calling from external A2A agents that do not have diezX DB access. companyId is derived from the bearer JWT; passing it explicitly in the body is supported but must match (else 403).","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"topN":{"type":"integer","default":3,"maximum":10,"minimum":1},"filters":{"type":"object","properties":{"status":{"enum":["manual","automated","any"],"type":"string"},"department":{"type":"string"},"solutionType":{"enum":["workflow","custom_app","any"],"type":"string"}}},"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId. If omitted, derived from JWT."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"proposedOrder":{"type":"array","items":{"type":"string"},"description":"If provided, switches skill to challenge mode."},"scoringWeights":{"type":"object","additionalProperties":{"type":"number"}},"interviewInsights":{"type":"array","items":{"type":"object","required":["recipientName","department","painPoints"],"properties":{"department":{"type":"string"},"painPoints":{"type":"array","items":{"type":"object","required":["description","frustrationLevel"],"properties":{"frequency":{"enum":["daily","weekly","monthly"],"type":"string"},"description":{"type":"string"},"currentProcess":{"type":"string"},"frustrationLevel":{"enum":["high","medium","low"],"type":"string"},"timeSpentMinutes":{"type":"integer"}}}},"recipientName":{"type":"string"}}}}}},"x-outputSchema":{"$ref":"#/skills/recommend_next_processes/x-outputSchema","description":"Identical to recommend_next_processes v1 output."}},{"id":"explain_pareto_breakdown_v2","name":"Explain Pareto Breakdown (v2 — company-scoped)","tags":["execution","pareto","prioritization","analysis","v2","company-scoped","agent:diego"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/diego/skills/explain_pareto_breakdown_v2","description":"Same output as explain_pareto_breakdown, but resolves the portfolio from company context (MongoDB) instead of requiring the caller to pass it. Use this variant when calling from external A2A agents that do not have diezX DB access.","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"cutoffPercent":{"type":"integer","default":20,"maximum":50,"minimum":5}}},"x-outputSchema":{"$ref":"#/skills/explain_pareto_breakdown/x-outputSchema","description":"Identical to explain_pareto_breakdown v1 output."}},{"id":"summarize_financial_health","name":"Summarize Financial Health","tags":["erp","financial-health","narrative","company-scoped","agent:daniel"],"examples":["¿Cómo cerró Q1 financieramente?","Give me a financial health summary for the last quarter."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/summarize_financial_health","description":"Pulls a P&L snapshot from the connected ERP for the requested period and returns deterministic metrics (income, expenses, margin, top accounts) plus a narrative summary.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"startDate":{"type":"string","description":"YYYY-MM-DD"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"legalEntityId":{"type":"string","description":"Optional Mongo ID of the legal entity."}}},"x-outputSchema":{"type":"object","required":["provider","currency","period","metrics","narrative"],"properties":{"period":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"metrics":{"type":"object","properties":{"cogs":{"type":"number"},"income":{"type":"number"},"expenses":{"type":"number"},"netIncome":{"type":"number"},"grossMargin":{"type":["number","null"]},"expenseRatio":{"type":["number","null"]},"topIncomeAccounts":{"type":"array"},"topExpenseAccounts":{"type":"array"}},"x-computeSource":"deterministic"},"currency":{"type":"string","x-computeSource":"deterministic"},"provider":{"enum":["xero","netsuite"],"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","maxLength":1500,"x-computeSource":"llm"}}}},{"id":"explain_pl_variance","name":"Explain P&L Variance","tags":["erp","variance","comparison","company-scoped","agent:daniel"],"examples":["¿Qué pasó este mes vs el anterior?","Why did margin drop quarter over quarter?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/explain_pl_variance","description":"Compares two ERP P&L periods and returns deterministic deltas (income, expenses, net income, top driver accounts) plus a narrative explaining what is driving the change.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["currentPeriod","comparisonPeriod"],"properties":{"companyId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"currentPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"legalEntityId":{"type":"string"},"comparisonPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}}}},"x-outputSchema":{"type":"object","required":["totalsDelta","topDrivers","narrative"],"properties":{"currency":{"type":"string","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"topDrivers":{"type":"array","x-computeSource":"deterministic"},"totalsDelta":{"type":"object","x-computeSource":"deterministic"},"currentPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"comparisonPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}}}}},{"id":"connect_process_to_financial_outcome","name":"Connect Process to Financial Outcome","tags":["erp","roi","process-impact","company-scoped","agent:daniel"],"examples":["¿Cuánto ahorraríamos automatizando reconciliación bancaria?","Is automating PO matching material to our P&L?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/connect_process_to_financial_outcome","description":"Takes a processId from the diezX portfolio plus ERP context and estimates the annualized dollar savings of automating it, expressed as both an absolute number and as a % of operating expenses.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId","startDate","endDate"],"properties":{"endDate":{"type":"string"},"companyId":{"type":"string"},"processId":{"type":"string","description":"stableProcessId from the diezX portfolio."},"startDate":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"legalEntityId":{"type":"string"},"runsPerPeriod":{"type":"number","minimum":0,"description":"Optional override; defaults to inferred from process frequency."},"blendedHourlyCost":{"type":"number","default":35,"minimum":0},"manualMinutesPerRun":{"type":"number","default":30,"minimum":0}}},"x-outputSchema":{"type":"object","required":["estimate","narrative"],"properties":{"period":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"currency":{"type":"string","x-computeSource":"deterministic"},"estimate":{"type":"object","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"}}}},{"id":"flag_financial_anomalies","name":"Flag Financial Anomalies","tags":["erp","anomalies","risk","company-scoped","agent:daniel"],"examples":["¿Hay algún gasto raro este mes?","Anything weird in the books vs last quarter?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/flag_financial_anomalies","description":"Compares two ERP P&L periods and surfaces anomalies (expense spikes, revenue drops, net loss, expense concentration, unexplained accounts) ranked by severity, plus a narrative recommending where to investigate first.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["currentPeriod","comparisonPeriod"],"properties":{"companyId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"currentPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"legalEntityId":{"type":"string"},"comparisonPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"materialityFloor":{"type":"number","default":1000,"minimum":0,"description":"Minimum absolute account amount to consider material."},"spikePercentThreshold":{"type":"number","default":50,"minimum":0,"description":"Pct change above which an account is flagged as a spike."},"revenueDropPercentThreshold":{"type":"number","default":25,"minimum":0}}},"x-outputSchema":{"type":"object","required":["anomalies","narrative"],"properties":{"currency":{"type":"string","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"anomalies":{"type":"array","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"currentPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"comparisonPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}}}}},{"id":"summarize_unverified_expenses","name":"Summarize Unverified Mendel Expenses","tags":["mendel","corporate-cards","compliance","close-of-month","company-scoped","agent:daniel"],"examples":["¿Cuántos gastos sin comprobar tenemos al cierre de este mes?","Show me which employees have receipts pending in Mendel."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/summarize_unverified_expenses","description":"Pulls Mendel corporate-card transactions for the period, isolates the ones missing a receipt (`payment.ticketAttached: false`), and returns deterministic metrics (total pending amount, count, % of total spend, oldest pending in days, top employees pending) plus a narrative summary aimed at the close-of-month review.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["startDate","endDate"],"properties":{"topN":{"type":"integer","default":5,"maximum":20,"minimum":1},"endDate":{"type":"string","description":"YYYY-MM-DD"},"companyId":{"type":"string"},"startDate":{"type":"string","description":"YYYY-MM-DD"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"type":"object","required":["provider","currency","period","metrics","narrative"],"properties":{"period":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"metrics":{"type":"object","properties":{"totalCount":{"type":"integer"},"totalAmount":{"type":"number"},"unverifiedCount":{"type":"integer"},"unverifiedAmount":{"type":"number"},"oldestPendingDays":{"type":"integer"},"topEmployeesPending":{"type":"array"},"unverifiedAmountRatio":{"type":["number","null"]}},"x-computeSource":"deterministic"},"currency":{"type":"string","x-computeSource":"deterministic"},"provider":{"enum":["mendel"],"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","maxLength":1500,"x-computeSource":"llm"}}}},{"id":"summarize_corporate_card_spend","name":"Summarize Corporate Card Spend (Mendel)","tags":["mendel","corporate-cards","spend-analysis","company-scoped","agent:daniel"],"examples":["¿Cómo va el gasto en tarjetas este mes vs el anterior?","Top spenders on Mendel last quarter?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/summarize_corporate_card_spend","description":"Pulls Mendel corporate-card transactions for the period and returns deterministic metrics (total spend, average transaction, top categories, top cardholders, optional growth vs comparison period) plus a narrative summary.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["startDate","endDate"],"properties":{"topN":{"type":"integer","default":5,"maximum":20,"minimum":1},"endDate":{"type":"string"},"companyId":{"type":"string"},"startDate":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"comparisonPeriod":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}}}},"x-outputSchema":{"type":"object","required":["provider","currency","period","metrics","narrative"],"properties":{"period":{"type":"object","required":["startDate","endDate"],"properties":{"endDate":{"type":"string","description":"YYYY-MM-DD"},"startDate":{"type":"string","description":"YYYY-MM-DD"}}},"metrics":{"type":"object","properties":{"comparison":{"type":["object","null"]},"totalCount":{"type":"integer"},"totalAmount":{"type":"number"},"topCategories":{"type":"array"},"topCardholders":{"type":"array"},"averageTransaction":{"type":"number"}},"x-computeSource":"deterministic"},"currency":{"type":"string","x-computeSource":"deterministic"},"provider":{"enum":["mendel"],"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","maxLength":1500,"x-computeSource":"llm"}}}},{"id":"forecast_cash_runway","name":"Forecast Cash Runway","tags":["erp","cash","forecast","company-scoped","agent:daniel"],"examples":["¿Cuánto runway tenemos?","When do we run out of cash at current burn?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/daniel/skills/forecast_cash_runway","description":"Projects months of runway from the company's last N months of net income (avg + worst-month stress test) and current cash on hand. Returns avg/worst/best month, runway months, zero-cash date, and a narrative read on whether the company is in a safe / watch / critical zone.","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["cashOnHand"],"properties":{"companyId":{"type":"string"},"cashOnHand":{"type":"number","minimum":0,"description":"Current cash on hand (snapshot currency)."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"legalEntityId":{"type":"string"},"lookbackMonths":{"type":"integer","default":6,"maximum":24,"minimum":1},"monthlyNetIncomeOverride":{"type":"number","description":"Optional override of avg monthly net income (e.g. expected fundraise inflow)."}}},"x-outputSchema":{"type":"object","required":["projection","narrative"],"properties":{"currency":{"type":"string","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"cashOnHand":{"type":"number","x-computeSource":"deterministic"},"projection":{"type":"object","x-computeSource":"deterministic"},"monthlySeries":{"type":"array","x-computeSource":"deterministic"},"lookbackMonths":{"type":"integer","x-computeSource":"deterministic"}}}},{"id":"summarize_pipeline_health","name":"Summarize Pipeline Health","tags":["crm","pipeline","narrative","company-scoped","agent:sofia"],"examples":["¿Cómo está el pipeline?","Give me a sales pipeline health summary for the last quarter."],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/sofia/skills/summarize_pipeline_health","description":"Pulls a snapshot of deals/owners from the connected CRM and returns deterministic pipeline metrics (volume, value, win rate, stage distribution, aging) plus a narrative summary.","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"months":{"type":"integer","default":12,"maximum":36,"minimum":1,"description":"Lookback window."},"companyId":{"type":"string","description":"Optional. Must match the JWT subject companyId."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"type":"object","required":["provider","months","metrics","narrative"],"properties":{"months":{"type":"integer","x-computeSource":"deterministic"},"metrics":{"type":"object","x-computeSource":"deterministic"},"provider":{"enum":["hubspot","zoho-crm"],"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","maxLength":1500,"x-computeSource":"llm"}}}},{"id":"analyze_pipeline_bottlenecks","name":"Analyze Pipeline Bottlenecks","tags":["crm","bottlenecks","analysis","company-scoped","agent:sofia"],"examples":["¿Dónde se atasca el pipeline?","Where are deals dying?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/sofia/skills/analyze_pipeline_bottlenecks","description":"Computes per-stage open/age/loss-rate metrics and flags bottlenecks (high aging, high loss rate, value concentration) with severity. Returns a narrative prioritizing the most painful one.","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"months":{"type":"integer","default":12,"maximum":36,"minimum":1},"companyId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"}}},"x-outputSchema":{"type":"object","required":["stageMetrics","bottlenecks","narrative"],"properties":{"months":{"type":"integer","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"bottlenecks":{"type":"array","x-computeSource":"deterministic"},"stageMetrics":{"type":"array","x-computeSource":"deterministic"}}}},{"id":"score_lead_qualification_health","name":"Score Lead Qualification Health","tags":["crm","lead-qualification","scoring","company-scoped","agent:sofia"],"examples":["¿Qué tan bien estamos calificando los leads?","How healthy is our inbound funnel?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/sofia/skills/score_lead_qualification_health","description":"Scores how well the inbound lead qualification process is operating: contact owner coverage, follow-up coverage, response-time SLO adherence, and lead→won conversion. Returns a 0-10 composite score with a letter grade.","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"months":{"type":"integer","default":6,"maximum":24,"minimum":1},"companyId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"responseTimeSloHours":{"type":"number","default":24,"minimum":0,"description":"Target hours from contact creation to first activity."}}},"x-outputSchema":{"type":"object","required":["metrics","narrative"],"properties":{"months":{"type":"integer","x-computeSource":"deterministic"},"metrics":{"type":"object","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"}}}},{"id":"recommend_engagement_automations","name":"Recommend Engagement Automations","tags":["crm","engagement","automation","recommendation","company-scoped","agent:sofia"],"examples":["¿Qué automatizaciones de ventas deberíamos priorizar?","Where should we automate sales engagement first?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/sofia/skills/recommend_engagement_automations","description":"Detects engagement gaps in the CRM (stalled deals, unattended contacts, missing owners, low-activity reps) and proposes one concrete automation per gap, ordered by severity.","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"months":{"type":"integer","default":6,"maximum":24,"minimum":1},"companyId":{"type":"string"},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"stalledDealDays":{"type":"integer","default":14,"minimum":1},"unattendedContactDays":{"type":"integer","default":7,"minimum":1}}},"x-outputSchema":{"type":"object","required":["gaps","recommendations","narrative"],"properties":{"gaps":{"type":"array","x-computeSource":"deterministic"},"months":{"type":"integer","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"},"recommendations":{"type":"array","x-computeSource":"llm"}}}},{"id":"forecast_pipeline_velocity","name":"Forecast Pipeline Velocity","tags":["crm","forecast","velocity","company-scoped","agent:sofia"],"examples":["¿Cuánto subiría el throughput si bajamos cycle time 30%?","What does pipeline velocity look like if we automate quote follow-ups?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/sofia/skills/forecast_pipeline_velocity","description":"Builds a baseline of cycle time + annualized throughput from closed-won deals and projects the upside of a cycle-time reduction (default 20%). Includes confidence based on sample size.","outputModes":["application/json"],"x-inputSchema":{"type":"object","properties":{"months":{"type":"integer","default":12,"maximum":36,"minimum":1},"companyId":{"type":"string"},"scenarioName":{"type":"string","description":"Optional process name being modeled (for narrative)."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"cycleTimeReductionPercent":{"type":"number","default":20,"maximum":90,"minimum":0}}},"x-outputSchema":{"type":"object","required":["baseline","forecast","narrative"],"properties":{"months":{"type":"integer","x-computeSource":"deterministic"},"baseline":{"type":"object","x-computeSource":"deterministic"},"forecast":{"type":"object","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"}}}},{"id":"connect_process_to_revenue_outcome","name":"Connect Process to Revenue Outcome","tags":["crm","roi","process-impact","company-scoped","agent:sofia"],"examples":["¿Cuánto revenue extra trae automatizar lead routing?","Is automating quote generation material to revenue?"],"inputModes":["application/json"],"x-endpoint":"https://agents.diezx.ai/api/a2a/sofia/skills/connect_process_to_revenue_outcome","description":"Takes a processId from the diezX portfolio and CRM context, then estimates the annualized revenue lift of automating it (via win-rate uplift × annualized deal attempts × avg deal size).","outputModes":["application/json"],"x-inputSchema":{"type":"object","required":["processId"],"properties":{"months":{"type":"integer","default":12,"maximum":36,"minimum":1},"companyId":{"type":"string"},"processId":{"type":"string","description":"stableProcessId from the diezX portfolio."},"userLanguage":{"enum":["en","es"],"type":"string","default":"en"},"expectedWinRateLiftPp":{"type":"number","default":2,"minimum":0,"description":"Expected lift in win rate (percentage points)."},"expectedResponseTimeReductionHours":{"type":"number","default":12,"minimum":0}}},"x-outputSchema":{"type":"object","required":["estimate","narrative"],"properties":{"months":{"type":"integer","x-computeSource":"deterministic"},"estimate":{"type":"object","x-computeSource":"deterministic"},"provider":{"type":"string","x-computeSource":"deterministic"},"narrative":{"type":"string","x-computeSource":"llm"}}}}],"version":"2.0.0","provider":{"url":"https://diezx.ai","organization":"diezX"},"security":[{"bearer-jwt":[]}],"description":"A Business Observability platform for mid-market companies: it shows how your company operates in real time and lets you act from there. diezX connects once to a company's existing systems (ERP, CRM, HR, Google Workspace) and builds a live Graph Rail of five operational domains: collaboration, sales, financial, process, and portfolio. On top of that graph, four A2A 0.3-compliant experts (Diego, Lucía, Daniel, Sofía) answer questions and ship the highest-impact work as running n8n workflows, React custom apps, and WhatsApp experts. Each expert queries its domain graph before answering. Hosted on Google Cloud (Cloud Run) with inference on Vertex AI. Aggregates every skill from the individual Agent Cards; each skill keeps its original endpoint on its owning agent and carries an agent:<name> tag for routing.","displayName":"diezX AI Agents Suite","capabilities":{"streaming":true,"pushNotifications":false},"protocolVersion":"0.3.0","securitySchemes":{"bearer-jwt":{"type":"http","scheme":"bearer","description":"diezX-issued JWT or A2A delegation token. Rate-limited per company tier.","bearerFormat":"JWT"}},"documentationUrl":"https://app.diezx.ai/docs/agents","defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"preferredTransport":"HTTP+JSON","supportedInterfaces":[{"url":"https://agents.diezx.ai/api/a2a/suite","protocolBinding":"HTTP+JSON","protocolVersion":"0.3"}]},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-10T07:58:56.831056+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agenstry federation","source_url":"https://agenstry.com/docs","last_check":{"checked_at":"2026-10-10T07:58:56.831056+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[{"card_url":"https://app.diezx.ai/.well-known/agent-card.json"}],"history_urls":["https://agents.diezx.ai/.well-known/agent-card.json","https://app.diezx.ai/.well-known/agent-card.json"],"skills":[{"skill_id":"analyze_pipeline_bottlenecks","name":"Analyze Pipeline Bottlenecks","description":"Computes per-stage open/age/loss-rate metrics and flags bottlenecks (high aging, high loss rate, value concentration) with severity. Returns a narrative prioritizing the most painful one.","tags":["crm","bottlenecks","analysis","company-scoped","agent:sofia"],"quality_warning":false},{"skill_id":"assign_implementation_champion","name":"Assign Implementation Champion","description":"Picks the best person to own deployment of a given automation. Filters candidates deterministically (AI champions first, department match, role match) then the LLM ranks the top shortlist and returns its pick with rationale. Useful when an external agent has the org chart but needs Diego to recommend *who* should ship this.","tags":["execution","assignment","champions","org-chart","agent:diego"],"quality_warning":false},{"skill_id":"assign_implementation_champion_v2","name":"Assign Implementation Champion (v2 — process + candidates resolved server-side)","description":"Same output as assign_implementation_champion, but resolves the process and the candidate pool (active company users with name/department/title/AI-champion flag) from MongoDB given a processId. companyId is derived from the JWT.","tags":["execution","assignment","champions","v2","company-scoped","agent:diego"],"quality_warning":false},{"skill_id":"compare_departments","name":"Compare Departments","description":"Side-by-side comparison of departments by avg score, process count, automation rate, and portfolio balance.","tags":["analysis","comparison","departments","agent:lucia"],"quality_warning":false},{"skill_id":"compare_departments_v2","name":"Compare Departments (v2 — company-scoped)","description":"Same output as compare_departments, but resolves the portfolio from company context (MongoDB) instead of requiring the caller to pass it. Use this variant when calling from external A2A agents that do not have diezX DB access. companyId derived from JWT; body override must match (else 403).","tags":["analysis","comparison","departments","v2","company-scoped","agent:lucia"],"quality_warning":false},{"skill_id":"connect_interview_to_process","name":"Connect Interview to Process","description":"Maps pain points from discovery interviews to processes in the portfolio. Flags discrepancies (high frustration vs low score).","tags":["interviews","mapping","discrepancy-detection","agent:lucia"],"quality_warning":false},{"skill_id":"connect_interview_to_process_v2","name":"Connect Interview to Process (v2 — company-scoped)","description":"Same output as connect_interview_to_process. Interviews still come in the input (they are caller-specific), but the portfolio is resolved from company context (MongoDB). Use this variant when calling from external A2A agents that do not have diezX DB access.","tags":["interviews","mapping","discrepancy-detection","v2","company-scoped","agent:lucia"],"quality_warning":false},{"skill_id":"connect_process_to_financial_outcome","name":"Connect Process to Financial Outcome","description":"Takes a processId from the diezX portfolio plus ERP context and estimates the annualized dollar savings of automating it, expressed as both an absolute number and as a % of operating expenses.","tags":["erp","roi","process-impact","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"connect_process_to_revenue_outcome","name":"Connect Process to Revenue Outcome","description":"Takes a processId from the diezX portfolio and CRM context, then estimates the annualized revenue lift of automating it (via win-rate uplift × annualized deal attempts × avg deal size).","tags":["crm","roi","process-impact","company-scoped","agent:sofia"],"quality_warning":false},{"skill_id":"design_automation","name":"Design Automation","description":"Given a process (name, department, frequency, systems involved, why-it-matters), produces an executable AutomationDesign: ordered proposedFlow, flowGraph (adjacency list), systemsUsed (constrained to companyTools when provided), approvalAssignments with suggested roles, and executionModel. The LLM does the design synthesis; a deterministic post-processor sanitizes the output (drops out-of-bounds edges, self-loops, duplicates, systems not in companyTools, truncates flows >30 steps, infers a linear graph if the model omits edges) and reports every fix in postValidationFixes so the caller can audit.","tags":["execution","design","workflow","creative","agent:diego"],"quality_warning":false},{"skill_id":"diagnose_execution_issue","name":"Diagnose Execution Issue","description":"Given a symptom (free-text, error message, or execution complaint) plus optionally the AutomationDesign + companyTools + recent logs, returns up to 4 ranked hypotheses with category, confidence, and a concrete suggestedFix per hypothesis. A deterministic categorizer pre-detects common failure modes via regex (auth_or_credential, rate_limit, permission_denied, timeout_or_slow, data_shape_mismatch, integration_missing) and tries to identify the failed step from \"step N\" / \"paso N\" references. The LLM ranks and produces hypotheses, aligned to the pre-detected categories when evidence is strong.","tags":["execution","diagnosis","troubleshooting","continuous-operation","agent:diego"],"quality_warning":false},{"skill_id":"diagnose_execution_issue_v2","name":"Diagnose Execution Issue (v2 — process resolved server-side)","description":"Same output as diagnose_execution_issue, but resolves the AutomationDesign and companyTools from MongoDB given a processId. The symptom is still required in the body — that is the caller-specific context.","tags":["execution","diagnosis","troubleshooting","v2","company-scoped","agent:diego"],"quality_warning":false},{"skill_id":"explain_pl_variance","name":"Explain P&L Variance","description":"Compares two ERP P&L periods and returns deterministic deltas (income, expenses, net income, top driver accounts) plus a narrative explaining what is driving the change.","tags":["erp","variance","comparison","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"explain_pareto_breakdown","name":"Explain Pareto Breakdown","description":"Identifies the top X% of processes by score that account for the bulk of estimated impact (Pareto 20/80).","tags":["execution","pareto","prioritization","analysis","agent:diego"],"quality_warning":false},{"skill_id":"explain_pareto_breakdown_v2","name":"Explain Pareto Breakdown (v2 — company-scoped)","description":"Same output as explain_pareto_breakdown, but resolves the portfolio from company context (MongoDB) instead of requiring the caller to pass it. Use this variant when calling from external A2A agents that do not have diezX DB access.","tags":["execution","pareto","prioritization","analysis","v2","company-scoped","agent:diego"],"quality_warning":false},{"skill_id":"explain_process_score","name":"Explain Process Score","description":"Explains why a specific process ranked at a given score, citing scoring weights and process attributes.","tags":["prioritization","scoring","explanation","agent:lucia"],"quality_warning":false},{"skill_id":"flag_financial_anomalies","name":"Flag Financial Anomalies","description":"Compares two ERP P&L periods and surfaces anomalies (expense spikes, revenue drops, net loss, expense concentration, unexplained accounts) ranked by severity, plus a narrative recommending where to investigate first.","tags":["erp","anomalies","risk","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"flag_validation_gaps","name":"Flag Validation Gaps","description":"Returns departments where AI-suggested processes lack human validation, ranked by risk.","tags":["data-quality","validation","agent:lucia"],"quality_warning":false},{"skill_id":"forecast_cash_runway","name":"Forecast Cash Runway","description":"Projects months of runway from the company's last N months of net income (avg + worst-month stress test) and current cash on hand. Returns avg/worst/best month, runway months, zero-cash date, and a narrative read on whether the company is in a safe / watch / critical zone.","tags":["erp","cash","forecast","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"forecast_pipeline_velocity","name":"Forecast Pipeline Velocity","description":"Builds a baseline of cycle time + annualized throughput from closed-won deals and projects the upside of a cycle-time reduction (default 20%). Includes confidence based on sample size.","tags":["crm","forecast","velocity","company-scoped","agent:sofia"],"quality_warning":false},{"skill_id":"generate_custom_app_brief","name":"Generate Custom App Brief","description":"Produces a CustomAppBrief for processes that do NOT fit a linear workflow (dashboards, complex forms, internal mini-apps). Output matches the diezX CustomAppBrief shape: appName, objective, targetUsers, dataSources (constrained to companyTools when provided), coreFeatures (capped at 12), screens (capped at 8) with React/Tailwind component hints, estimatedEffort enum, and goalsAlignment (filtered to caller-supplied goals). The brief is mostly LLM-emitted; a deterministic post-processor caps lists and filters dataSources/goals against allowlists. All fixes recorded in postValidationFixes.","tags":["execution","custom-app","design","product-brief","agent:diego"],"quality_warning":false},{"skill_id":"generate_custom_app_brief_v2","name":"Generate Custom App Brief (v2 — process resolved server-side)","description":"Same output as generate_custom_app_brief, but resolves the process and companyTools from MongoDB given a processId. goalsAlignment and targetUserRoles can still be supplied in the body (they are caller-specific context).","tags":["execution","custom-app","v2","company-scoped","agent:diego"],"quality_warning":false},{"skill_id":"generate_n8n_workflow","name":"Generate n8n Workflow Skeleton","description":"Given an AutomationDesign, produces an n8n workflow SKELETON: nodes mapped to native n8n node types using the diezX NATIVE_NODES registry (Hubspot, Salesforce, Slack, Gmail, etc.), with trigger variant for the first step where available, Wait node for approvals, Set node for pure data shaping, and HTTP fallback when no native node matches. Connections derived from the AutomationDesign flowGraph. Per-step nodeMapping is fully deterministic — the LLM only writes a short narrative explaining required credentials and HTTP fallback steps. The output is NOT a fully-valid n8n .json (positions and parameters need a developer pass) but it IS the right starting point.","tags":["execution","n8n","workflow-generation","integrations","agent:diego"],"quality_warning":false},{"skill_id":"generate_n8n_workflow_v2","name":"Generate n8n Workflow Skeleton (v2 — process resolved server-side)","description":"Same output as generate_n8n_workflow, but resolves the AutomationDesign + companyTools from MongoDB given a processId. Errors with 400 if the process has no automationDesign yet (suggests running design_automation first).","tags":["execution","n8n","workflow-generation","v2","company-scoped","agent:diego"],"quality_warning":false},{"skill_id":"recommend_engagement_automations","name":"Recommend Engagement Automations","description":"Detects engagement gaps in the CRM (stalled deals, unattended contacts, missing owners, low-activity reps) and proposes one concrete automation per gap, ordered by severity.","tags":["crm","engagement","automation","recommendation","company-scoped","agent:sofia"],"quality_warning":false},{"skill_id":"recommend_next_processes","name":"Recommend or Challenge Next Processes","description":"Recommends what to automate first from the process portfolio. If proposedOrder is omitted, returns top-N processes to automate next; if proposedOrder is provided, pressure-tests it against portfolio data and returns agreement/concerns/counter-proposal.","tags":["execution","prioritization","recommendation","challenge","roadmap","agent:diego"],"quality_warning":false},{"skill_id":"recommend_next_processes_v2","name":"Recommend or Challenge Next Processes (v2 — company-scoped)","description":"Same output as recommend_next_processes, but resolves the portfolio from company context (MongoDB) instead of requiring the caller to pass it. Use this variant when calling from external A2A agents that do not have diezX DB access. companyId is derived from the bearer JWT; passing it explicitly in the body is supported but must match (else 403).","tags":["execution","prioritization","recommendation","challenge","roadmap","v2","company-scoped","agent:diego"],"quality_warning":false},{"skill_id":"score_lead_qualification_health","name":"Score Lead Qualification Health","description":"Scores how well the inbound lead qualification process is operating: contact owner coverage, follow-up coverage, response-time SLO adherence, and lead→won conversion. Returns a 0-10 composite score with a letter grade.","tags":["crm","lead-qualification","scoring","company-scoped","agent:sofia"],"quality_warning":false},{"skill_id":"score_new_process","name":"Score New Process","description":"Estimates a score for a candidate process not yet in the portfolio, by invoking the diezX scoring engine and benchmarking against similar processes.","tags":["scoring","estimation","what-if","agent:lucia"],"quality_warning":false},{"skill_id":"summarize_corporate_card_spend","name":"Summarize Corporate Card Spend (Mendel)","description":"Pulls Mendel corporate-card transactions for the period and returns deterministic metrics (total spend, average transaction, top categories, top cardholders, optional growth vs comparison period) plus a narrative summary.","tags":["mendel","corporate-cards","spend-analysis","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"summarize_financial_health","name":"Summarize Financial Health","description":"Pulls a P&L snapshot from the connected ERP for the requested period and returns deterministic metrics (income, expenses, margin, top accounts) plus a narrative summary.","tags":["erp","financial-health","narrative","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"summarize_pipeline_health","name":"Summarize Pipeline Health","description":"Pulls a snapshot of deals/owners from the connected CRM and returns deterministic pipeline metrics (volume, value, win rate, stage distribution, aging) plus a narrative summary.","tags":["crm","pipeline","narrative","company-scoped","agent:sofia"],"quality_warning":false},{"skill_id":"summarize_unverified_expenses","name":"Summarize Unverified Mendel Expenses","description":"Pulls Mendel corporate-card transactions for the period, isolates the ones missing a receipt (`payment.ticketAttached: false`), and returns deterministic metrics (total pending amount, count, % of total spend, oldest pending in days, top employees pending) plus a narrative summary aimed at the close-of-month review.","tags":["mendel","corporate-cards","compliance","close-of-month","company-scoped","agent:daniel"],"quality_warning":false},{"skill_id":"surface_feedback_backlog","name":"Surface Feedback Backlog","description":"Lists processes pending review or with unresolved feedback comments.","tags":["collaboration","review","backlog","agent:lucia"],"quality_warning":false},{"skill_id":"validate_automation_design","name":"Validate Automation Design","description":"Pre-deploy gate. Given an AutomationDesign, runs structural checks (orphan approvals, flowGraph integrity, cycles, missing assignees, systems not present in companyTools) and returns an issues list + a narrative recommendation. The issues list is deterministic; the narrative is LLM-generated.","tags":["execution","validation","pre-deploy","quality","agent:diego"],"quality_warning":false},{"skill_id":"validate_automation_design_v2","name":"Validate Automation Design (v2 — process resolved server-side)","description":"Same output as validate_automation_design, but resolves the AutomationDesign and companyTools from MongoDB given a processId. companyId is derived from the JWT (or passed explicitly in body, must match else 403). Use this variant when calling from external A2A agents that have a process reference but no DB access.","tags":["execution","validation","pre-deploy","v2","company-scoped","agent:diego"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":4,"passed":4},"recent_checks":[{"card_url":"https://app.diezx.ai/.well-known/agent-card.json","checked_at":"2026-10-10T07:59:10.320473+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://agents.diezx.ai/.well-known/agent-card.json","checked_at":"2026-10-10T07:58:56.831056+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://app.diezx.ai/.well-known/agent-card.json","checked_at":"2026-10-10T07:51:58.738637+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://agents.diezx.ai/.well-known/agent-card.json","checked_at":"2026-10-10T07:50:56.679068+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-10T07:58:56.831056+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-10T07:50:56.679068+00:00","state":"unconfirmed","http_status":200,"detail":"Endpoint did not return an A2A task-not-found response"},"events":[],"relationships":[],"verification":{"agent_card_url":"https://agents.diezx.ai/.well-known/agent-card.json","last_successful_card_check":"2026-10-10T07:58:56.831056+00:00","latest_card_check":{"checked_at":"2026-10-10T07:58:56.831056+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-10T07:58:56.831056+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-10T07:58:56.831056+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-10T07:50:56.679068+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}