Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
90
A2A A2A 0.3.0 v2.0.0

DiezXSuite

agents.diezx.ai · diezX

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.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain agents.diezx.ai via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
38/100
grade F · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
Observed inflow · 30d
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 38/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 2/25
Card is valid but has no .url field.
How to earn +23 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload.
Docs →
partial Protocol version 5/10
Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points.
How to earn +5 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 36 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: diezX (https://diezx.ai). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 4/5
seen in upstream source within 0d
partial Security declaration 2/5
Declares 1 security scheme(s) but none use PKCE or mTLS.
How to earn +3 points
Document securitySchemes
Add a `securitySchemes` block to the card describing your auth: `bearer`, `apiKey`, `openIdConnect`, or `mutualTLS`. Routers refuse to call agents that declare no auth model.
Docs →
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-08-22 03:07:43 current 597093622795… view →
Uptime
100.0%
1 direct probes · 30d
Response
241ms
last direct probe
Skills
36
declared
Streaming
SSE-capable

Skills · 36 declared · mapped to canonical taxonomy

Explain Process Score

Explains why a specific process ranked at a given score, citing scoring weights and process attributes.

canonical Role Assignment match 83%
prioritizationscoringexplanationagent:lucia
Connect Interview to Process

Maps pain points from discovery interviews to processes in the portfolio. Flags discrepancies (high frustration vs low score).

canonical Resume Screening match 85%
interviewsmappingdiscrepancy-detectionagent:lucia
Flag Validation Gaps

Returns departments where AI-suggested processes lack human validation, ranked by risk.

canonical Agent Profiles match 83%
data-qualityvalidationagent:lucia
Surface Feedback Backlog

Lists processes pending review or with unresolved feedback comments.

canonical Pull Request Review match 81%
collaborationreviewbacklogagent:lucia
Compare Departments

Side-by-side comparison of departments by avg score, process count, automation rate, and portfolio balance.

canonical Moving and Storage Quotes match 83%
analysiscomparisondepartmentsagent:lucia
Score New Process

Estimates a score for a candidate process not yet in the portfolio, by invoking the diezX scoring engine and benchmarking against similar processes.

canonical Resume Screening match 83%
scoringestimationwhat-ifagent:lucia
Compare Departments (v2 — company-scoped)

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 …

canonical Agent-Initiated Checkout (AP2) match 80%
analysiscomparisondepartmentsv2company-scoped
Connect Interview to Process (v2 — company-scoped)

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 (…

canonical Resume Screening match 81%
interviewsmappingdiscrepancy-detectionv2company-scoped
Validate Automation Design

Pre-deploy gate. Given an AutomationDesign, runs structural checks (orphan approvals, flowGraph integrity, cycles, missing assignees, systems not present in com…

canonical Workflow Automation match 82%
executionvalidationpre-deployqualityagent:diego
Assign Implementation Champion

Picks the best person to own deployment of a given automation. Filters candidates deterministically (AI champions first, department match, role match) then the …

canonical Role Assignment match 83%
executionassignmentchampionsorg-chartagent:diego
Design Automation

Given a process (name, department, frequency, systems involved, why-it-matters), produces an executable AutomationDesign: ordered proposedFlow, flowGraph (adjac…

canonical Workflow Automation match 83%
executiondesignworkflowcreativeagent:diego
Recommend or Challenge Next Processes

Recommends what to automate first from the process portfolio. If proposedOrder is omitted, returns top-N processes to automate next; if proposedOrder is provide…

canonical Workflow Automation match 83%
executionprioritizationrecommendationchallengeroadmap
Explain Pareto Breakdown

Identifies the top X% of processes by score that account for the bulk of estimated impact (Pareto 20/80).

canonical Task Decomposition match 83%
executionparetoprioritizationanalysisagent:diego
Validate Automation Design (v2 — process resolved server-side)

Same output as validate_automation_design, but resolves the AutomationDesign and companyTools from MongoDB given a processId. companyId is derived from the JWT …

canonical Workflow Automation match 82%
executionvalidationpre-deployv2company-scoped
Assign Implementation Champion (v2 — process + candidates resolved server-side)

Same output as assign_implementation_champion, but resolves the process and the candidate pool (active company users with name/department/title/AI-champion flag…

canonical Agent-Initiated Checkout (AP2) match 82%
executionassignmentchampionsv2company-scoped
Generate n8n Workflow Skeleton

Given an AutomationDesign, produces an n8n workflow SKELETON: nodes mapped to native n8n node types using the diezX NATIVE_NODES registry (Hubspot, Salesforce, …

canonical Workflow Automation match 84%
executionn8nworkflow-generationintegrationsagent:diego
Generate Custom App Brief

Produces a CustomAppBrief for processes that do NOT fit a linear workflow (dashboards, complex forms, internal mini-apps). Output matches the diezX CustomAppBri…

canonical Workflow Automation match 81%
executioncustom-appdesignproduct-briefagent:diego
Diagnose Execution Issue

Given a symptom (free-text, error message, or execution complaint) plus optionally the AutomationDesign + companyTools + recent logs, returns up to 4 ranked hyp…

canonical Error Diagnosis and Debugging match 83%
executiondiagnosistroubleshootingcontinuous-operationagent:diego
Generate n8n Workflow Skeleton (v2 — process resolved server-side)

Same output as generate_n8n_workflow, but resolves the AutomationDesign + companyTools from MongoDB given a processId. Errors with 400 if the process has no aut…

canonical Workflow Automation match 84%
executionn8nworkflow-generationv2company-scoped
Generate Custom App Brief (v2 — process resolved server-side)

Same output as generate_custom_app_brief, but resolves the process and companyTools from MongoDB given a processId. goalsAlignment and targetUserRoles can still…

canonical Documentation Generation match 82%
executioncustom-appv2company-scopedagent:diego
Diagnose Execution Issue (v2 — process resolved server-side)

Same output as diagnose_execution_issue, but resolves the AutomationDesign and companyTools from MongoDB given a processId. The symptom is still required in the…

canonical Error Diagnosis and Debugging match 83%
executiondiagnosistroubleshootingv2company-scoped
Recommend or Challenge Next Processes (v2 — company-scoped)

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 …

canonical Agent-Initiated Checkout (AP2) match 82%
executionprioritizationrecommendationchallengeroadmap
Explain Pareto Breakdown (v2 — company-scoped)

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 …

canonical Agent-Initiated Checkout (AP2) match 81%
executionparetoprioritizationanalysisv2
Summarize Financial Health

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…

canonical Audit Trail Summarization match 83%
erpfinancial-healthnarrativecompany-scopedagent:daniel
Explain P&L Variance

Compares two ERP P&L periods and returns deterministic deltas (income, expenses, net income, top driver accounts) plus a narrative explaining what is driving th…

canonical Budgeting and Forecasting match 82%
erpvariancecomparisoncompany-scopedagent:daniel
Connect Process to Financial Outcome

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 a…

canonical Payroll Processing match 83%
erproiprocess-impactcompany-scopedagent:daniel
Flag Financial Anomalies

Compares two ERP P&L periods and surfaces anomalies (expense spikes, revenue drops, net loss, expense concentration, unexplained accounts) ranked by severity, p…

canonical Anomaly Detection match 82%
erpanomaliesriskcompany-scopedagent:daniel
Summarize Unverified Mendel Expenses

Pulls Mendel corporate-card transactions for the period, isolates the ones missing a receipt (`payment.ticketAttached: false`), and returns deterministic metric…

canonical Audit Trail Summarization match 82%
mendelcorporate-cardscomplianceclose-of-monthcompany-scoped
Summarize Corporate Card Spend (Mendel)

Pulls Mendel corporate-card transactions for the period and returns deterministic metrics (total spend, average transaction, top categories, top cardholders, op…

canonical Document Summarization match 82%
mendelcorporate-cardsspend-analysiscompany-scopedagent:daniel
Forecast Cash Runway

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,…

canonical Budgeting and Forecasting match 85%
erpcashforecastcompany-scopedagent:daniel
Summarize Pipeline Health

Pulls a snapshot of deals/owners from the connected CRM and returns deterministic pipeline metrics (volume, value, win rate, stage distribution, aging) plus a n…

canonical Document Summarization match 84%
crmpipelinenarrativecompany-scopedagent:sofia
Analyze Pipeline Bottlenecks

Computes per-stage open/age/loss-rate metrics and flags bottlenecks (high aging, high loss rate, value concentration) with severity. Returns a narrative priorit…

canonical Crypto Derivatives Analytics match 84%
crmbottlenecksanalysiscompany-scopedagent:sofia
Score Lead Qualification Health

Scores how well the inbound lead qualification process is operating: contact owner coverage, follow-up coverage, response-time SLO adherence, and lead→won conve…

canonical Deal Qualification (BANT/MEDDIC) match 82%
crmlead-qualificationscoringcompany-scopedagent:sofia
Recommend Engagement Automations

Detects engagement gaps in the CRM (stalled deals, unattended contacts, missing owners, low-activity reps) and proposes one concrete automation per gap, ordered…

canonical Workflow Automation match 82%
crmengagementautomationrecommendationcompany-scoped
Forecast Pipeline Velocity

Builds a baseline of cycle time + annualized throughput from closed-won deals and projects the upside of a cycle-time reduction (default 20%). Includes confiden…

canonical Workflow Automation match 81%
crmforecastvelocitycompany-scopedagent:sofia
Connect Process to Revenue Outcome

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 a…

canonical Payroll Processing match 83%
crmroiprocess-impactcompany-scopedagent:sofia

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-08-22 03:07:43 200 241ms

Cheaper or better alternatives per-skill

↑ 10 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

Agenstry live
Independent evidence infrastructure for the agent economy — measures which public A2A agents and MCP servers genuinely exist, respond, are o
Agenstry · q 100%
Verse
Verse helps with hard questions in AI capabilities, markets, geopolitics, and science. Ask a concrete question, approve a small USDC payment
Verse (autonomous agent) · q 78%
Vruum live
AI revenue orchestration: research, outreach, marketing, partnerships, deals, and winbacks run as one engine inside the AI you already use,
Vruum · q 100%
AgentCrush live
Protocol-neutral market intelligence for the AI agent economy. Evidence-ranked index of 1,350+ agents across GitHub, HuggingFace, LMArena, E
AgentCrush · q 100%
RelayLaunch CouncilVerse
Multi-agent AI council platform with 17 structured council modes, auditable dissent tracking, minority reports, and truth anchors. Signed re
RelayLaunch LLC · q 85%
api.runonproof.com
Verifiable business authorization infrastructure for AI agents and enterprise systems.
api.runonproof.com · q 65%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/agents.diezx.ai.svg)](https://agenstry.com/agents/agents.diezx.ai)
[![Verified Business](https://agenstry.com/badge/agents.diezx.ai/identity.svg)](https://agenstry.com/agents/agents.diezx.ai)
[![Uptime](https://agenstry.com/badge/agents.diezx.ai/uptime.svg)](https://agenstry.com/agents/agents.diezx.ai)
[![A2A version](https://agenstry.com/badge/agents.diezx.ai/protocol.svg)](https://agenstry.com/agents/agents.diezx.ai)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "protocolVersion": "0.3.0",
  "name": "DiezXSuite",
  "displayName": "diezX AI Agents Suite",
  "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\u00eda, Daniel, Sof\u00eda) 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.",
  "version": "2.0.0",
  "url": "https://agents.diezx.ai/api/a2a/suite",
  "preferredTransport": "HTTP+JSON",
  "supportedInterfaces": [
    {
      "url": "https://agents.diezx.ai/api/a2a/suite",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "0.3"
    }
  ],
  "provider": {
    "organization": "diezX",
    "url": "https://diezx.ai"
  },
  "documentationUrl": "https://app.diezx.ai/docs/agents",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false
  },
  "securitySchemes": {
    "bearer-jwt": {
      "type": "http",
      "scheme": "bearer",
      "bearerFormat": "JWT",
      "description": "diezX-issued JWT or A2A delegation token. Rate-limited per company tier."
    }
  },
  "security": [
    {
      "bearer-jwt": []
    }
  ],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "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"
      ],
      "examples": [
        "\u00bfPor qu\u00e9 reconciliaci\u00f3n bancaria tiene score 8.2?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/explain_process_score",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId",
          "portfolio",
          "scoringWeights"
        ],
        "properties": {
          "processId": {
            "type": "string"
          },
          "portfolio": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "processName"
              ],
              "properties": {
                "processId": {
                  "type": "string",
                  "description": "Stable content hash. See x-idStrategy."
                },
                "processName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "level1Process": {
                  "type": "string"
                },
                "finalScore": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "estimatedImpact": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "effort": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "frequency": {
                  "type": "string",
                  "enum": [
                    "daily",
                    "weekly",
                    "monthly",
                    "quarterly",
                    "ad-hoc"
                  ]
                },
                "automationPotential": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "solutionType": {
                  "type": "string",
                  "enum": [
                    "workflow",
                    "custom_app"
                  ]
                },
                "isAutomated": {
                  "type": "boolean"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "scoringWeights": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "explanation",
          "topContributingFactors"
        ],
        "properties": {
          "explanation": {
            "type": "string",
            "maxLength": 1500,
            "x-computeSource": "llm"
          },
          "topContributingFactors": {
            "type": "array",
            "x-computeSource": "deterministic",
            "items": {
              "type": "object",
              "properties": {
                "factor": {
                  "type": "string"
                },
                "weight": {
                  "type": "number"
                },
                "value": {
                  "type": "number"
                },
                "weightedContribution": {
                  "type": "number"
                }
              }
            }
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfQu\u00e9 quotes de las entrevistas matchean con los top 5?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/connect_interview_to_process",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "interviews",
          "portfolio"
        ],
        "properties": {
          "interviews": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "recipientName",
                "department",
                "painPoints"
              ],
              "properties": {
                "recipientName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "painPoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "description",
                      "frustrationLevel"
                    ],
                    "properties": {
                      "description": {
                        "type": "string"
                      },
                      "currentProcess": {
                        "type": "string"
                      },
                      "frequency": {
                        "type": "string",
                        "enum": [
                          "daily",
                          "weekly",
                          "monthly"
                        ]
                      },
                      "timeSpentMinutes": {
                        "type": "integer"
                      },
                      "frustrationLevel": {
                        "type": "string",
                        "enum": [
                          "high",
                          "medium",
                          "low"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "portfolio": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "processName"
              ],
              "properties": {
                "processId": {
                  "type": "string",
                  "description": "Stable content hash. See x-idStrategy."
                },
                "processName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "level1Process": {
                  "type": "string"
                },
                "finalScore": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "estimatedImpact": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "effort": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "frequency": {
                  "type": "string",
                  "enum": [
                    "daily",
                    "weekly",
                    "monthly",
                    "quarterly",
                    "ad-hoc"
                  ]
                },
                "automationPotential": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "solutionType": {
                  "type": "string",
                  "enum": [
                    "workflow",
                    "custom_app"
                  ]
                },
                "isAutomated": {
                  "type": "boolean"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "matches"
        ],
        "properties": {
          "matches": {
            "type": "array",
            "x-computeSource": "hybrid",
            "items": {
              "type": "object",
              "properties": {
                "interviewee": {
                  "type": "string",
                  "x-computeSource": "deterministic"
                },
                "painPoint": {
                  "type": "string",
                  "x-computeSource": "deterministic"
                },
                "frustrationLevel": {
                  "type": "string",
                  "enum": [
                    "high",
                    "medium",
                    "low"
                  ],
                  "x-computeSource": "deterministic"
                },
                "matchedProcessId": {
                  "type": "string",
                  "x-computeSource": "llm"
                },
                "matchedProcessScore": {
                  "type": "number",
                  "x-computeSource": "deterministic"
                },
                "discrepancyFlag": {
                  "type": "boolean",
                  "x-computeSource": "deterministic"
                },
                "matchConfidence": {
                  "type": "string",
                  "enum": [
                    "high",
                    "medium",
                    "low"
                  ],
                  "x-computeSource": "llm"
                }
              }
            }
          }
        }
      }
    },
    {
      "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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/flag_validation_gaps",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "validationStats"
        ],
        "properties": {
          "validationStats": {
            "type": "object",
            "required": [
              "totalProcesses",
              "validatedCount",
              "unvalidatedCount"
            ],
            "properties": {
              "totalProcesses": {
                "type": "integer"
              },
              "validatedCount": {
                "type": "integer"
              },
              "unvalidatedCount": {
                "type": "integer"
              },
              "unvalidatedByDepartment": {
                "type": "object",
                "additionalProperties": {
                  "type": "integer"
                }
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "gaps"
        ],
        "properties": {
          "gaps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "department": {
                  "type": "string",
                  "x-computeSource": "deterministic"
                },
                "unvalidatedCount": {
                  "type": "integer",
                  "x-computeSource": "deterministic"
                },
                "riskLevel": {
                  "type": "string",
                  "enum": [
                    "high",
                    "medium",
                    "low"
                  ],
                  "x-computeSource": "deterministic"
                },
                "recommendedAction": {
                  "type": "string",
                  "x-computeSource": "llm"
                }
              }
            }
          }
        }
      }
    },
    {
      "id": "surface_feedback_backlog",
      "name": "Surface Feedback Backlog",
      "description": "Lists processes pending review or with unresolved feedback comments.",
      "tags": [
        "collaboration",
        "review",
        "backlog",
        "agent:lucia"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/surface_feedback_backlog",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "feedbackSummary"
        ],
        "properties": {
          "feedbackSummary": {
            "type": "object",
            "required": [
              "pendingReviewCount",
              "needsMyReviewProcessNames",
              "unresolvedFeedbackCount"
            ],
            "properties": {
              "pendingReviewCount": {
                "type": "integer"
              },
              "needsMyReviewProcessNames": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "unresolvedFeedbackCount": {
                "type": "integer"
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "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",
      "description": "Side-by-side comparison of departments by avg score, process count, automation rate, and portfolio balance.",
      "tags": [
        "analysis",
        "comparison",
        "departments",
        "agent:lucia"
      ],
      "examples": [
        "\u00bfC\u00f3mo se compara Operaciones vs Finanzas?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/compare_departments",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "portfolio"
        ],
        "properties": {
          "portfolio": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "processName"
              ],
              "properties": {
                "processId": {
                  "type": "string",
                  "description": "Stable content hash. See x-idStrategy."
                },
                "processName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "level1Process": {
                  "type": "string"
                },
                "finalScore": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "estimatedImpact": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "effort": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "frequency": {
                  "type": "string",
                  "enum": [
                    "daily",
                    "weekly",
                    "monthly",
                    "quarterly",
                    "ad-hoc"
                  ]
                },
                "automationPotential": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "solutionType": {
                  "type": "string",
                  "enum": [
                    "workflow",
                    "custom_app"
                  ]
                },
                "isAutomated": {
                  "type": "boolean"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "departmentsToCompare": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Omit to compare all departments."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "comparisons",
          "narrative"
        ],
        "properties": {
          "comparisons": {
            "type": "array",
            "x-computeSource": "deterministic",
            "items": {
              "type": "object",
              "properties": {
                "department": {
                  "type": "string"
                },
                "processCount": {
                  "type": "integer"
                },
                "automatedCount": {
                  "type": "integer"
                },
                "automationRate": {
                  "type": "number"
                },
                "avgScore": {
                  "type": "number"
                },
                "topProcessIds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfQu\u00e9 score tendr\u00eda un proceso de aprobaci\u00f3n de gastos?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/score_new_process",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "candidateProcess",
          "scoringWeights"
        ],
        "properties": {
          "candidateProcess": {
            "type": "object",
            "required": [
              "processName"
            ],
            "properties": {
              "processName": {
                "type": "string"
              },
              "department": {
                "type": "string"
              },
              "estimatedImpact": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ]
              },
              "effort": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ]
              },
              "frequency": {
                "type": "string",
                "enum": [
                  "daily",
                  "weekly",
                  "monthly",
                  "quarterly",
                  "ad-hoc"
                ]
              },
              "automationPotential": {
                "type": "number",
                "minimum": 0,
                "maximum": 10
              }
            }
          },
          "scoringWeights": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "portfolio": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "processName"
              ],
              "properties": {
                "processId": {
                  "type": "string",
                  "description": "Stable content hash. See x-idStrategy."
                },
                "processName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "level1Process": {
                  "type": "string"
                },
                "finalScore": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "estimatedImpact": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "effort": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "frequency": {
                  "type": "string",
                  "enum": [
                    "daily",
                    "weekly",
                    "monthly",
                    "quarterly",
                    "ad-hoc"
                  ]
                },
                "automationPotential": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "solutionType": {
                  "type": "string",
                  "enum": [
                    "workflow",
                    "custom_app"
                  ]
                },
                "isAutomated": {
                  "type": "boolean"
                },
                "source": {
                  "type": "string"
                }
              }
            },
            "description": "Optional \u2014 used to find comparable processes for benchmarking."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "estimatedScore",
          "confidence",
          "reasoning"
        ],
        "properties": {
          "estimatedScore": {
            "type": "number",
            "minimum": 0,
            "maximum": 10,
            "x-computeSource": "deterministic",
            "description": "From the diezX scoring engine (shared/utils/scoring)."
          },
          "confidence": {
            "type": "string",
            "enum": [
              "high",
              "medium",
              "low"
            ],
            "x-computeSource": "deterministic",
            "description": "Based on completeness of input fields."
          },
          "comparableProcessIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "x-computeSource": "deterministic"
          },
          "reasoning": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "id": "compare_departments_v2",
      "name": "Compare Departments (v2 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/compare_departments_v2",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId."
          },
          "departmentsToCompare": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Omit to compare all departments."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "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 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/lucia/skills/connect_interview_to_process_v2",
      "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": {
                "recipientName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "painPoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "description",
                      "frustrationLevel"
                    ],
                    "properties": {
                      "description": {
                        "type": "string"
                      },
                      "currentProcess": {
                        "type": "string"
                      },
                      "frequency": {
                        "type": "string",
                        "enum": [
                          "daily",
                          "weekly",
                          "monthly"
                        ]
                      },
                      "timeSpentMinutes": {
                        "type": "integer"
                      },
                      "frustrationLevel": {
                        "type": "string",
                        "enum": [
                          "high",
                          "medium",
                          "low"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "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",
      "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"
      ],
      "examples": [
        "Antes de shipear este workflow, \u00bfhay algo que falte o est\u00e9 mal armado?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/validate_automation_design",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "automationDesign"
        ],
        "properties": {
          "automationDesign": {
            "type": "object",
            "properties": {
              "executionModel": {
                "type": "string"
              },
              "proposedFlow": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "flowGraph": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "description": "Adjacency list as array of [from, to] index pairs."
              },
              "systemsUsed": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "aiStepModels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stepIndex": {
                      "type": "integer"
                    },
                    "geminiModel": {
                      "type": "string"
                    }
                  }
                }
              },
              "approvalAssignments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stepIndex": {
                      "type": "integer"
                    },
                    "assignees": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "reason": {
                      "type": "string"
                    }
                  }
                }
              },
              "frequency": {
                "type": "string"
              }
            }
          },
          "companyTools": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional. Systems already integrated in the company \u2014 used to flag systemsUsed entries that are not available."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "readyToDeploy",
          "issues",
          "narrative"
        ],
        "properties": {
          "readyToDeploy": {
            "type": "boolean",
            "x-computeSource": "deterministic",
            "description": "True when there are zero severity=blocker issues."
          },
          "issues": {
            "type": "array",
            "x-computeSource": "deterministic",
            "items": {
              "type": "object",
              "properties": {
                "severity": {
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warning",
                    "info"
                  ]
                },
                "code": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "stepIndex": {
                  "type": "integer"
                }
              }
            }
          },
          "summary": {
            "type": "object",
            "x-computeSource": "deterministic",
            "properties": {
              "stepCount": {
                "type": "integer"
              },
              "approvalCount": {
                "type": "integer"
              },
              "systemCount": {
                "type": "integer"
              },
              "hasCycles": {
                "type": "boolean"
              }
            }
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfQui\u00e9n del equipo deber\u00eda liderar la implementaci\u00f3n de este workflow de Finanzas?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/assign_implementation_champion",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "process",
          "candidates"
        ],
        "properties": {
          "process": {
            "type": "object",
            "required": [
              "processName"
            ],
            "properties": {
              "processId": {
                "type": "string"
              },
              "processName": {
                "type": "string"
              },
              "department": {
                "type": "string"
              },
              "solutionType": {
                "type": "string",
                "enum": [
                  "workflow",
                  "custom_app"
                ]
              },
              "finalScore": {
                "type": "number"
              },
              "estimatedImpact": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ]
              }
            }
          },
          "candidates": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "isAiChampion": {
                  "type": "boolean"
                },
                "skills": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "pick",
          "rationale",
          "shortlist"
        ],
        "properties": {
          "pick": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "x-computeSource": "llm"
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "high",
                  "medium",
                  "low"
                ],
                "x-computeSource": "deterministic"
              }
            }
          },
          "shortlist": {
            "type": "array",
            "x-computeSource": "deterministic",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "matchScore": {
                  "type": "number"
                },
                "matchReasons": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "rationale": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "Dise\u00f1ame el workflow para reconciliaci\u00f3n bancaria mensual."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/design_automation",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "process"
        ],
        "properties": {
          "process": {
            "type": "object",
            "required": [
              "processName"
            ],
            "properties": {
              "processId": {
                "type": "string"
              },
              "processName": {
                "type": "string"
              },
              "department": {
                "type": "string"
              },
              "whyItMatters": {
                "type": "string"
              },
              "frequency": {
                "type": "string",
                "enum": [
                  "daily",
                  "weekly",
                  "monthly",
                  "quarterly",
                  "ad-hoc"
                ]
              },
              "estimatedHoursPerMonth": {
                "type": "number"
              },
              "monthlyVolume": {
                "type": "number"
              },
              "systemsInvolved": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "companyTools": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional. Constrains systemsUsed to integrations the company already has."
          },
          "solutionTypeHint": {
            "type": "string",
            "enum": [
              "workflow",
              "custom_app"
            ]
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "automationDesign",
          "postValidationFixes",
          "narrative"
        ],
        "properties": {
          "automationDesign": {
            "type": "object",
            "x-computeSource": "hybrid",
            "properties": {
              "proposedFlow": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "x-computeSource": "llm"
              },
              "flowGraph": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "x-computeSource": "llm"
              },
              "systemsUsed": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "x-computeSource": "llm"
              },
              "approvalAssignments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "x-computeSource": "llm"
              },
              "executionModel": {
                "type": "string",
                "x-computeSource": "llm"
              },
              "frequency": {
                "type": "string",
                "x-computeSource": "llm"
              }
            }
          },
          "postValidationFixes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "x-computeSource": "deterministic",
            "description": "List of fixes the deterministic sanitizer applied to the LLM output. Empty when the model produced a clean design."
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfQu\u00e9 automatizo primero este trimestre?",
        "Pensaba arrancar con facturaci\u00f3n. \u00bfTiene sentido?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/recommend_next_processes",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "portfolio"
        ],
        "properties": {
          "portfolio": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "processName"
              ],
              "properties": {
                "processId": {
                  "type": "string",
                  "description": "Stable content hash. See x-idStrategy."
                },
                "processName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "level1Process": {
                  "type": "string"
                },
                "finalScore": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "estimatedImpact": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "effort": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "frequency": {
                  "type": "string",
                  "enum": [
                    "daily",
                    "weekly",
                    "monthly",
                    "quarterly",
                    "ad-hoc"
                  ]
                },
                "automationPotential": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "solutionType": {
                  "type": "string",
                  "enum": [
                    "workflow",
                    "custom_app"
                  ]
                },
                "isAutomated": {
                  "type": "boolean"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "scoringWeights": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "filters": {
            "type": "object",
            "properties": {
              "department": {
                "type": "string"
              },
              "solutionType": {
                "type": "string",
                "enum": [
                  "workflow",
                  "custom_app",
                  "any"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "manual",
                  "automated",
                  "any"
                ]
              }
            }
          },
          "topN": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "default": 3
          },
          "proposedOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If provided, switches skill to challenge mode. Ordered processIds the caller wants critiqued."
          },
          "interviewInsights": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "recipientName",
                "department",
                "painPoints"
              ],
              "properties": {
                "recipientName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "painPoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "description",
                      "frustrationLevel"
                    ],
                    "properties": {
                      "description": {
                        "type": "string"
                      },
                      "currentProcess": {
                        "type": "string"
                      },
                      "frequency": {
                        "type": "string",
                        "enum": [
                          "daily",
                          "weekly",
                          "monthly"
                        ]
                      },
                      "timeSpentMinutes": {
                        "type": "integer"
                      },
                      "frustrationLevel": {
                        "type": "string",
                        "enum": [
                          "high",
                          "medium",
                          "low"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "mode",
          "rationale"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "recommend",
              "challenge"
            ],
            "x-computeSource": "deterministic"
          },
          "recommendations": {
            "type": "array",
            "x-computeSource": "hybrid",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "rank"
              ],
              "properties": {
                "processId": {
                  "type": "string"
                },
                "processName": {
                  "type": "string"
                },
                "rank": {
                  "type": "integer"
                },
                "reason": {
                  "type": "string",
                  "x-computeSource": "llm"
                }
              }
            }
          },
          "verdict": {
            "type": "string",
            "enum": [
              "agree",
              "agree_with_concerns",
              "disagree"
            ],
            "x-computeSource": "deterministic",
            "description": "Only present in challenge mode. Computed from positional match between proposedOrder and counterProposal."
          },
          "concerns": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "x-computeSource": "llm"
          },
          "counterProposal": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "x-computeSource": "deterministic"
          },
          "rationale": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfCu\u00e1l es mi 20/80 de procesos?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/explain_pareto_breakdown",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "portfolio"
        ],
        "properties": {
          "portfolio": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "processId",
                "processName"
              ],
              "properties": {
                "processId": {
                  "type": "string",
                  "description": "Stable content hash. See x-idStrategy."
                },
                "processName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "level1Process": {
                  "type": "string"
                },
                "finalScore": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "estimatedImpact": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "effort": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "frequency": {
                  "type": "string",
                  "enum": [
                    "daily",
                    "weekly",
                    "monthly",
                    "quarterly",
                    "ad-hoc"
                  ]
                },
                "automationPotential": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "solutionType": {
                  "type": "string",
                  "enum": [
                    "workflow",
                    "custom_app"
                  ]
                },
                "isAutomated": {
                  "type": "boolean"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "cutoffPercent": {
            "type": "integer",
            "minimum": 5,
            "maximum": 50,
            "default": 20
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "paretoSet",
          "cumulativeImpactPercent",
          "narrative"
        ],
        "properties": {
          "paretoSet": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "x-computeSource": "deterministic",
            "description": "processIds in the top cutoffPercent."
          },
          "cumulativeImpactPercent": {
            "type": "number",
            "x-computeSource": "deterministic"
          },
          "isClassicPareto": {
            "type": "boolean",
            "x-computeSource": "deterministic",
            "description": "True if cutoff% of processes deliver >= 70% of impact."
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "id": "validate_automation_design_v2",
      "name": "Validate Automation Design (v2 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/validate_automation_design_v2",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId"
        ],
        "properties": {
          "processId": {
            "type": "string",
            "description": "stableProcessId (preferred) or Mongo _id of the process within the caller company."
          },
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "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 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/assign_implementation_champion_v2",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId"
        ],
        "properties": {
          "processId": {
            "type": "string"
          },
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "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",
      "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 \u2014 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"
      ],
      "examples": [
        "Convert\u00ed este design en un skeleton de n8n."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/generate_n8n_workflow",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "automationDesign",
          "processName"
        ],
        "properties": {
          "automationDesign": {
            "type": "object",
            "properties": {
              "executionModel": {
                "type": "string"
              },
              "proposedFlow": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "flowGraph": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "description": "Adjacency list as array of [from, to] index pairs."
              },
              "systemsUsed": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "aiStepModels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stepIndex": {
                      "type": "integer"
                    },
                    "geminiModel": {
                      "type": "string"
                    }
                  }
                }
              },
              "approvalAssignments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stepIndex": {
                      "type": "integer"
                    },
                    "assignees": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "reason": {
                      "type": "string"
                    }
                  }
                }
              },
              "frequency": {
                "type": "string"
              }
            }
          },
          "processName": {
            "type": "string"
          },
          "companyTools": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "skeleton",
          "nodeMapping",
          "unmappedSteps",
          "narrative"
        ],
        "properties": {
          "skeleton": {
            "type": "object",
            "x-computeSource": "deterministic",
            "properties": {
              "workflowName": {
                "type": "string"
              },
              "nodes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "isTrigger": {
                      "type": "boolean"
                    },
                    "credentialType": {
                      "type": "string"
                    },
                    "notes": {
                      "type": "string"
                    }
                  }
                }
              },
              "connections": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "string"
                    },
                    "to": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "nodeMapping": {
            "type": "array",
            "x-computeSource": "deterministic",
            "items": {
              "type": "object"
            }
          },
          "unmappedSteps": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "Produc\u00ed el brief para un dashboard interno de aprobaciones de gastos."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/generate_custom_app_brief",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "process"
        ],
        "properties": {
          "process": {
            "type": "object",
            "required": [
              "processName"
            ],
            "properties": {
              "processId": {
                "type": "string"
              },
              "processName": {
                "type": "string"
              },
              "whyItMatters": {
                "type": "string"
              },
              "department": {
                "type": "string"
              },
              "systemsInvolved": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "estimatedHoursPerMonth": {
                "type": "number"
              }
            }
          },
          "companyTools": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "goalsAlignment": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional. The brief's goalsAlignment is filtered to this allowlist."
          },
          "targetUserRoles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "customAppBrief",
          "postValidationFixes",
          "narrative"
        ],
        "properties": {
          "customAppBrief": {
            "type": "object",
            "x-computeSource": "hybrid"
          },
          "postValidationFixes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "El workflow falla en el paso 3 con 401 Unauthorized \u2014 qu\u00e9 pas\u00f3?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/diagnose_execution_issue",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "symptom"
        ],
        "properties": {
          "symptom": {
            "type": "string"
          },
          "automationDesign": {
            "type": "object",
            "properties": {
              "executionModel": {
                "type": "string"
              },
              "proposedFlow": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "flowGraph": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "description": "Adjacency list as array of [from, to] index pairs."
              },
              "systemsUsed": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "aiStepModels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stepIndex": {
                      "type": "integer"
                    },
                    "geminiModel": {
                      "type": "string"
                    }
                  }
                }
              },
              "approvalAssignments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stepIndex": {
                      "type": "integer"
                    },
                    "assignees": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "reason": {
                      "type": "string"
                    }
                  }
                }
              },
              "frequency": {
                "type": "string"
              }
            }
          },
          "failedStepIndex": {
            "type": "integer"
          },
          "recentLogs": {
            "type": "string"
          },
          "companyTools": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "detectedCategories",
          "hypotheses",
          "narrative"
        ],
        "properties": {
          "detectedCategories": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "auth_or_credential",
                "rate_limit",
                "integration_missing",
                "data_shape_mismatch",
                "timeout_or_slow",
                "permission_denied",
                "unknown"
              ]
            },
            "x-computeSource": "deterministic"
          },
          "failedStep": {
            "type": "object",
            "x-computeSource": "deterministic",
            "properties": {
              "index": {
                "type": "integer"
              },
              "description": {
                "type": "string"
              }
            }
          },
          "hypotheses": {
            "type": "array",
            "x-computeSource": "llm",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer"
                },
                "category": {
                  "type": "string"
                },
                "hypothesis": {
                  "type": "string"
                },
                "confidence": {
                  "type": "string",
                  "enum": [
                    "high",
                    "medium",
                    "low"
                  ]
                },
                "suggestedFix": {
                  "type": "string"
                }
              }
            }
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "id": "generate_n8n_workflow_v2",
      "name": "Generate n8n Workflow Skeleton (v2 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/generate_n8n_workflow_v2",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId"
        ],
        "properties": {
          "processId": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "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 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/generate_custom_app_brief_v2",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId"
        ],
        "properties": {
          "processId": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "goalsAlignment": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "targetUserRoles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "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 \u2014 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 \u2014 that is the caller-specific context.",
      "tags": [
        "execution",
        "diagnosis",
        "troubleshooting",
        "v2",
        "company-scoped",
        "agent:diego"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/diagnose_execution_issue_v2",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId",
          "symptom"
        ],
        "properties": {
          "processId": {
            "type": "string"
          },
          "symptom": {
            "type": "string"
          },
          "failedStepIndex": {
            "type": "integer"
          },
          "recentLogs": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "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 \u2014 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"
      ],
      "examples": [
        "\u00bfQu\u00e9 automatizo primero este trimestre? (external A2A agent, no portfolio)",
        "Compare el orden [procId1, procId2, procId3] contra el \u00f3ptimo."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/recommend_next_processes_v2",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId. If omitted, derived from JWT."
          },
          "scoringWeights": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "filters": {
            "type": "object",
            "properties": {
              "department": {
                "type": "string"
              },
              "solutionType": {
                "type": "string",
                "enum": [
                  "workflow",
                  "custom_app",
                  "any"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "manual",
                  "automated",
                  "any"
                ]
              }
            }
          },
          "topN": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "default": 3
          },
          "proposedOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If provided, switches skill to challenge mode."
          },
          "interviewInsights": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "recipientName",
                "department",
                "painPoints"
              ],
              "properties": {
                "recipientName": {
                  "type": "string"
                },
                "department": {
                  "type": "string"
                },
                "painPoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "description",
                      "frustrationLevel"
                    ],
                    "properties": {
                      "description": {
                        "type": "string"
                      },
                      "currentProcess": {
                        "type": "string"
                      },
                      "frequency": {
                        "type": "string",
                        "enum": [
                          "daily",
                          "weekly",
                          "monthly"
                        ]
                      },
                      "timeSpentMinutes": {
                        "type": "integer"
                      },
                      "frustrationLevel": {
                        "type": "string",
                        "enum": [
                          "high",
                          "medium",
                          "low"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "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 \u2014 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"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/diego/skills/explain_pareto_breakdown_v2",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId."
          },
          "cutoffPercent": {
            "type": "integer",
            "minimum": 5,
            "maximum": 50,
            "default": 20
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "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",
      "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"
      ],
      "examples": [
        "\u00bfC\u00f3mo cerr\u00f3 Q1 financieramente?",
        "Give me a financial health summary for the last quarter."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/summarize_financial_health",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "startDate",
          "endDate"
        ],
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId."
          },
          "startDate": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "endDate": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "legalEntityId": {
            "type": "string",
            "description": "Optional Mongo ID of the legal entity."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "provider",
          "currency",
          "period",
          "metrics",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "xero",
              "netsuite"
            ],
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "period": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "metrics": {
            "type": "object",
            "x-computeSource": "deterministic",
            "properties": {
              "income": {
                "type": "number"
              },
              "expenses": {
                "type": "number"
              },
              "cogs": {
                "type": "number"
              },
              "netIncome": {
                "type": "number"
              },
              "grossMargin": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "expenseRatio": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "topExpenseAccounts": {
                "type": "array"
              },
              "topIncomeAccounts": {
                "type": "array"
              }
            }
          },
          "narrative": {
            "type": "string",
            "maxLength": 1500,
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfQu\u00e9 pas\u00f3 este mes vs el anterior?",
        "Why did margin drop quarter over quarter?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/explain_pl_variance",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "currentPeriod",
          "comparisonPeriod"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "currentPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "comparisonPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "legalEntityId": {
            "type": "string"
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "totalsDelta",
          "topDrivers",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "currentPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "comparisonPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "totalsDelta": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "topDrivers": {
            "type": "array",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfCu\u00e1nto ahorrar\u00edamos automatizando reconciliaci\u00f3n bancaria?",
        "Is automating PO matching material to our P&L?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/connect_process_to_financial_outcome",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId",
          "startDate",
          "endDate"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "processId": {
            "type": "string",
            "description": "stableProcessId from the diezX portfolio."
          },
          "startDate": {
            "type": "string"
          },
          "endDate": {
            "type": "string"
          },
          "blendedHourlyCost": {
            "type": "number",
            "minimum": 0,
            "default": 35
          },
          "manualMinutesPerRun": {
            "type": "number",
            "minimum": 0,
            "default": 30
          },
          "runsPerPeriod": {
            "type": "number",
            "minimum": 0,
            "description": "Optional override; defaults to inferred from process frequency."
          },
          "legalEntityId": {
            "type": "string"
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "estimate",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "period": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "estimate": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfHay alg\u00fan gasto raro este mes?",
        "Anything weird in the books vs last quarter?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/flag_financial_anomalies",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "currentPeriod",
          "comparisonPeriod"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "currentPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "comparisonPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "legalEntityId": {
            "type": "string"
          },
          "materialityFloor": {
            "type": "number",
            "minimum": 0,
            "default": 1000,
            "description": "Minimum absolute account amount to consider material."
          },
          "spikePercentThreshold": {
            "type": "number",
            "minimum": 0,
            "default": 50,
            "description": "Pct change above which an account is flagged as a spike."
          },
          "revenueDropPercentThreshold": {
            "type": "number",
            "minimum": 0,
            "default": 25
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "anomalies",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "currentPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "comparisonPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "anomalies": {
            "type": "array",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfCu\u00e1ntos gastos sin comprobar tenemos al cierre de este mes?",
        "Show me which employees have receipts pending in Mendel."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/summarize_unverified_expenses",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "startDate",
          "endDate"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "endDate": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "topN": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "default": 5
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "provider",
          "currency",
          "period",
          "metrics",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "mendel"
            ],
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "period": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "metrics": {
            "type": "object",
            "x-computeSource": "deterministic",
            "properties": {
              "totalAmount": {
                "type": "number"
              },
              "totalCount": {
                "type": "integer"
              },
              "unverifiedAmount": {
                "type": "number"
              },
              "unverifiedCount": {
                "type": "integer"
              },
              "unverifiedAmountRatio": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "oldestPendingDays": {
                "type": "integer"
              },
              "topEmployeesPending": {
                "type": "array"
              }
            }
          },
          "narrative": {
            "type": "string",
            "maxLength": 1500,
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfC\u00f3mo va el gasto en tarjetas este mes vs el anterior?",
        "Top spenders on Mendel last quarter?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/summarize_corporate_card_spend",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "startDate",
          "endDate"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "startDate": {
            "type": "string"
          },
          "endDate": {
            "type": "string"
          },
          "comparisonPeriod": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "topN": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "default": 5
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "provider",
          "currency",
          "period",
          "metrics",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "mendel"
            ],
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "period": {
            "type": "object",
            "required": [
              "startDate",
              "endDate"
            ],
            "properties": {
              "startDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              },
              "endDate": {
                "type": "string",
                "description": "YYYY-MM-DD"
              }
            }
          },
          "metrics": {
            "type": "object",
            "x-computeSource": "deterministic",
            "properties": {
              "totalAmount": {
                "type": "number"
              },
              "totalCount": {
                "type": "integer"
              },
              "averageTransaction": {
                "type": "number"
              },
              "topCategories": {
                "type": "array"
              },
              "topCardholders": {
                "type": "array"
              },
              "comparison": {
                "type": [
                  "object",
                  "null"
                ]
              }
            }
          },
          "narrative": {
            "type": "string",
            "maxLength": 1500,
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfCu\u00e1nto runway tenemos?",
        "When do we run out of cash at current burn?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/daniel/skills/forecast_cash_runway",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "cashOnHand"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "cashOnHand": {
            "type": "number",
            "minimum": 0,
            "description": "Current cash on hand (snapshot currency)."
          },
          "lookbackMonths": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24,
            "default": 6
          },
          "monthlyNetIncomeOverride": {
            "type": "number",
            "description": "Optional override of avg monthly net income (e.g. expected fundraise inflow)."
          },
          "legalEntityId": {
            "type": "string"
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "projection",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "currency": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "cashOnHand": {
            "type": "number",
            "x-computeSource": "deterministic"
          },
          "lookbackMonths": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "monthlySeries": {
            "type": "array",
            "x-computeSource": "deterministic"
          },
          "projection": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfC\u00f3mo est\u00e1 el pipeline?",
        "Give me a sales pipeline health summary for the last quarter."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/sofia/skills/summarize_pipeline_health",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Optional. Must match the JWT subject companyId."
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 36,
            "default": 12,
            "description": "Lookback window."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "provider",
          "months",
          "metrics",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "hubspot",
              "zoho-crm"
            ],
            "x-computeSource": "deterministic"
          },
          "months": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "metrics": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "maxLength": 1500,
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfD\u00f3nde se atasca el pipeline?",
        "Where are deals dying?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/sofia/skills/analyze_pipeline_bottlenecks",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string"
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 36,
            "default": 12
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "stageMetrics",
          "bottlenecks",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "months": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "stageMetrics": {
            "type": "array",
            "x-computeSource": "deterministic"
          },
          "bottlenecks": {
            "type": "array",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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\u2192won conversion. Returns a 0-10 composite score with a letter grade.",
      "tags": [
        "crm",
        "lead-qualification",
        "scoring",
        "company-scoped",
        "agent:sofia"
      ],
      "examples": [
        "\u00bfQu\u00e9 tan bien estamos calificando los leads?",
        "How healthy is our inbound funnel?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/sofia/skills/score_lead_qualification_health",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string"
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24,
            "default": 6
          },
          "responseTimeSloHours": {
            "type": "number",
            "minimum": 0,
            "default": 24,
            "description": "Target hours from contact creation to first activity."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "metrics",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "months": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "metrics": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfQu\u00e9 automatizaciones de ventas deber\u00edamos priorizar?",
        "Where should we automate sales engagement first?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/sofia/skills/recommend_engagement_automations",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string"
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24,
            "default": 6
          },
          "stalledDealDays": {
            "type": "integer",
            "minimum": 1,
            "default": 14
          },
          "unattendedContactDays": {
            "type": "integer",
            "minimum": 1,
            "default": 7
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "gaps",
          "recommendations",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "months": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "gaps": {
            "type": "array",
            "x-computeSource": "deterministic"
          },
          "recommendations": {
            "type": "array",
            "x-computeSource": "llm"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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"
      ],
      "examples": [
        "\u00bfCu\u00e1nto subir\u00eda el throughput si bajamos cycle time 30%?",
        "What does pipeline velocity look like if we automate quote follow-ups?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/sofia/skills/forecast_pipeline_velocity",
      "x-inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string"
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 36,
            "default": 12
          },
          "cycleTimeReductionPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 90,
            "default": 20
          },
          "scenarioName": {
            "type": "string",
            "description": "Optional process name being modeled (for narrative)."
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "baseline",
          "forecast",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "months": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "baseline": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "forecast": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    },
    {
      "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 \u00d7 annualized deal attempts \u00d7 avg deal size).",
      "tags": [
        "crm",
        "roi",
        "process-impact",
        "company-scoped",
        "agent:sofia"
      ],
      "examples": [
        "\u00bfCu\u00e1nto revenue extra trae automatizar lead routing?",
        "Is automating quote generation material to revenue?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "x-endpoint": "https://agents.diezx.ai/api/a2a/sofia/skills/connect_process_to_revenue_outcome",
      "x-inputSchema": {
        "type": "object",
        "required": [
          "processId"
        ],
        "properties": {
          "companyId": {
            "type": "string"
          },
          "processId": {
            "type": "string",
            "description": "stableProcessId from the diezX portfolio."
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 36,
            "default": 12
          },
          "expectedWinRateLiftPp": {
            "type": "number",
            "minimum": 0,
            "default": 2,
            "description": "Expected lift in win rate (percentage points)."
          },
          "expectedResponseTimeReductionHours": {
            "type": "number",
            "minimum": 0,
            "default": 12
          },
          "userLanguage": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "default": "en"
          }
        }
      },
      "x-outputSchema": {
        "type": "object",
        "required": [
          "estimate",
          "narrative"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "x-computeSource": "deterministic"
          },
          "months": {
            "type": "integer",
            "x-computeSource": "deterministic"
          },
          "estimate": {
            "type": "object",
            "x-computeSource": "deterministic"
          },
          "narrative": {
            "type": "string",
            "x-computeSource": "llm"
          }
        }
      }
    }
  ]
}