{"protocolVersion":"0.3.0","name":"axiom","description":"axiom — the nexus instance agent at https://nexus.enfusion.ca. Delegate tasks here over A2A: bug filing, knowledge-graph search/inspection, and time/billing queries, each backed by this instance's own MCP tool surface and typed ontology.","version":"0.1.0","url":"https://nexus.enfusion.ca/a2a","preferredTransport":"JSONRPC","additionalInterfaces":[{"url":"https://nexus.enfusion.ca/a2a","transport":"JSONRPC"}],"provider":{"organization":"nexus","url":"https://nexus.enfusion.ca"},"capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["text/plain","application/json"],"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"nexus-api-key-or-jwt","description":"A nexus API key (nxs_…) or MCP OAuth access token."}},"security":[{"bearer":[]}],"skills":[{"id":"delegate","name":"Delegate a task conversationally","description":"Free-text delegation. Send a natural-language task and this instance's agent runs a tool-using reasoning loop over its own knowledge graph (search, inspect, file, create) and returns a synthesized answer plus any created node refs. Use when the request needs judgement or spans multiple tools.","tags":["delegation","reasoning","agent"],"examples":["A bug surfaced in chaos: the artifact editor 400s on typed-ref save. File it on nexus.","What decisions constrain how cross-instance auth should work?"]},{"id":"file-bug","name":"File a platform bug","description":"File a nexus-platform bug with severity, component tags, and either a markdown spec or the three structured fields (what_happened, what_should_happen, reproduction_steps). Enforced path: correct client scoping, standardized tags, and an implements edge to the bug anchor. Returns the created wi_ ref.","tags":["bug-filing","quality","issue-tracking"],"examples":["File a high-severity mcp bug: get_chain returns steps out of order."]},{"id":"search-graph","name":"Search the knowledge graph","description":"Semantic hybrid search (full-text + vector via RRF) across decisions, insights, work items, and artifacts. Filter by node type, client, date, or status. Returns ranked nodes with typed refs and URLs. Use for discovery and 'what do we know about X'.","tags":["discovery","knowledge","research"],"examples":["Search the graph for prior decisions about A2A cross-instance delegation."]},{"id":"inspect-artifact","name":"Inspect an artifact's content","description":"Retrieve the full content blocks of any node (decision, insight, work item, document) by its typed ref. Use to read the body behind a search hit before acting on it.","tags":["investigation","analysis","audit"],"examples":["Inspect art_Qt5bA4 and summarize its trust-and-auth section."]},{"id":"inspect-node","name":"Resolve a node by ref","description":"Fetch a single node (work item, decision, insight, document) by its typed ref and return its NORMALIZED VIEW — type, title, status, tags, typed refs, summary, related-edge counts (and for a work item, latest-update + spec). Use to resolve a known ref to its current state/metadata. Distinct from inspect-artifact (full content body) and search-graph (discovery). This is the capability cross-instance ref resolution depends on.","tags":["resolution","investigation","cross-instance"],"examples":["Resolve wi_Ka3c5Q and report its current status and title.","Fetch the node for this ref so I can route a follow-up."]},{"id":"query-billing","name":"Query time / billing entries","description":"Aggregate logged time entries by client, project, work item, user, or date range from THIS instance's ledger. Forward-looking placeholder for the aperture billing-delegation use case: today it answers from local time entries; the same skill shape will front aperture's cross-instance cost data.","tags":["billing","time-tracking","reporting","aperture"],"examples":["How many hours were logged to client 11 this month?"]},{"id":"create-work-item","name":"Create a work item","description":"Create a non-bug work item (task) with optional project, owners, priority, and target date. Returns the created wi_ ref. Use create-bug-flavored requests via file-bug instead.","tags":["work-management","task-creation","planning"]},{"id":"netbox-branch","name":"NetBox branch lifecycle","description":"Create, inspect, or merge a netbox-branching branch via the nexus-worker. One reasoning chain = one branch = one reviewable changeset. Direct skill — send args: { action: 'create'|'status'|'merge', name?, branch_id? }.","tags":["netbox","provisioning","branch","infrastructure"],"examples":["action=create, name='nexus-chain-42-subnets'","action=merge, branch_id='42'"]},{"id":"netbox-write","name":"NetBox branch-scoped write changeset","description":"Execute typed NetBox write primitives (ensure_prefix, ensure_vlan, assign_ip, allocate, ensure_tenant, ensure_site, ensure_tag, delete) against a named branch via the nexus-worker. Idempotent; external_uuid is derived from natural keys when omitted. Direct skill — send args: { branch_id, ops: [{op, ...}] }.","tags":["netbox","provisioning","ipam","infrastructure"],"examples":["ops=[{op:'ensure_prefix', prefix:'10.0.0.0/24', site:'dc1'}]"]},{"id":"netbox-import","name":"NetBox spreadsheet-shaped bulk import","description":"Bulk upsert from flat, spreadsheet-shaped rows into a branch via the nexus-worker. The worker owns dependency ordering and de-duplication (tenants → sites → tags → vlans → prefixes). Direct skill — send args: { branch_id, rows: [{tenant?, site?, prefix?, vid?, ...}], ensure_tags? }.","tags":["netbox","provisioning","ipam","import","infrastructure"],"examples":["rows=[{tenant:'surewerx', site:'azure-us-west-2', prefix:'10.25.0.0/24', description:'subnet'}]"]},{"id":"netbox-author","name":"NetBox desired-state authoring (spec blocks)","description":"Author desired NetBox state as per-object spec blocks on DCIM nodes via the nexus-worker (resolves external_uuids). Nothing touches NetBox; apply later with netbox-seed action=apply. Direct skill — send args: { client_id, rows: [{tenant?, site?, prefix?, vid?, ...}] }.","tags":["netbox","provisioning","ipam","seed","authoring","infrastructure"],"examples":["client_id=3, rows=[{tenant:'surewerx', site:'SW:AZ-westus2', prefix:'10.25.0.0/24'}]"]},{"id":"netbox-seed","name":"NetBox graph-stored seed orchestration","description":"Operate a client's graph-stored NetBox seed (desired state) against the nexus-worker: show the seed YAML, apply it to NetBox in a branch (upsert + prune, merge-gated), or export live NetBox back into the seed artifact. Direct skill — send args: { action: 'show'|'apply'|'export', client_id, tenant?, branch_id?, prune? }.","tags":["netbox","provisioning","ipam","seed","infrastructure"],"examples":["action=apply, client_id=3, prune=true","action=export, client_id=3, tenant='surewerx', branch_id='abc123'"]}]}