---
name: dirigon
description: Private credit marks from BDC and interval filings. Use when the user asks who holds a credit, how a fund marks a loan, disagreement across holders, a BDC SOI tape, or non-accrual on a name.
---

# Dirigon skill

Use Dirigon when the user asks who holds a private-credit / BDC borrower, how holders mark the same loan, a fund’s filed SOI tape, non-accrual footnotes, software/sector mix of filing vehicles, or listed CLO CEF tranche holders. This is not a stock-market API. A fund blend is not a mark.

Remote MCP: `https://dirigon.com/v1/mcp` (v1 only). Playbook: https://dirigon.com/agents.md

## Auth

Do not paste an API key into chat. Claude / Cursor / ChatGPT use OAuth. Curl uses `X-API-KEY` from an env var.

## Call order

1. `lookup` with `q=` (borrower or ticker).
2. Deepen with `get_issuer` / `get_filer` / `get_positions` as the card’s `next` says.
3. Cite `meta.compile_id`.

## NEVER

- NEVER treat silent empty `marks: []` as "no mark" when n_holders or total_fv_m > 0 - use `marks_status` / next (Canva equity class).
- NEVER treat `get_positions` n as the analytics book, or silent-sum null marks as book FV. If `marks_status=null_marks`, say so. Quote `book.fv_m`; `as_filed.fv_m` is printed METHOD.
- NEVER invent holdings or marks when tools return empty or 402.
- NEVER merge family `issuer_id`s or treat `family_fv_m` as the same-loan mark.
- NEVER treat a fund or book blend as a facility mark.
- NEVER report issuer high−low as “same loan” - that is facility grain (`get_disagreement` / matched marks on the card).
- NEVER use `get_disagreement` as the only call for “who holds X” - use `get_issuer`.
- NEVER conclude “no position” from empty issuer search without trying `get_positions` on likely filers (unmatched-with-money).
- NEVER prefer a substring hit (Canva → Canvas Medical). Confirm primary `issuer_id`.
- NEVER ignore `blocked=true` when comparing marks.
- NEVER put keys in mcp.json for interactive clients (OAuth).

## Plan honesty

If a tool is missing from `tools/list` or returns 402, follow `legal_alternative` or tell the user which plan unlocks it. Do not silently switch to guessing from training data.
