Install
$ agentstack add skill-gauss314-skills-cafci ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
CAFCI — Fondos Comunes de Inversion Argentinos
Skill para consultar informacion publica de fondos comunes de inversion en Argentina via las 4 fuentes oficiales de CAFCI (Camara Argentina de Fondos Comunes de Inversion).
Cubre 1152 fondos y 4615 clases activas al 2026-06: Money Market, Renta Fija, Renta Variable, Renta Mixta, PyMes, Retorno Total, Infraestructura, Fondos Cerrados, ASG, RG900.
⚠️ Aviso Legal
- API publica sin documentacion oficial. Los endpoints pueden cambiar sin aviso (como paso con la API REST anterior, discontinuada en 2026-04).
- Respetar terminos de uso del CAFCI.
- Los datos son delayed (cierre del dia habil, ~18hs ART).
- Para uso comercial intensivo, contactar al CAFCI para feeds oficiales.
- Rendimientos pasados no garantizan rendimientos futuros.
📌 Importante: API REST anterior DISCONTINUADA
La API REST api.pub.cafci.org.ar/tipo-renta, /fondo/{id}, /estadisticas/... fue discontinuada en 2026-04 (HTTP 403 "Route not allowed"). El unico path que sigue activo en ese host es /pb_get.
Esta skill usa las 4 fuentes alternativas que la reemplazaron:
/consulta-de-fondos.json(catalogo completo)/pb_get(XLSX diario)defuddle.md/.../fondos/{F}?clase={C}(ficha markdown).../fondos/{F}?clase={C}(HTML para composicion de cartera)
Scripts
| Script | Descripcion | |--------|-------------| | [fetchcafci.py](./scripts/fetchcafci.py) | Script principal: todos los endpoints + funciones de consulta |
Requiere: pip install openpyxl (para parsear el XLSX diario).
Uso rapido
# ── DATASETS ENTEROS (con cache local diario) ──────────────────────────
# Catalogo completo: 1152 fondos, 4615 clases con IDs, honorarios, metadata
py scripts/fetch_cafci.py catalogo
py scripts/fetch_cafci.py catalogo -o catalogo.json # guarda 2.7MB
py scripts/fetch_cafci.py catalogo --no-cache # fuerza refetch
# Snapshot diario: VCP, patrimonio, variaciones (dia/mes/YTD/12m)
py scripts/fetch_cafci.py diario
py scripts/fetch_cafci.py diario -o diario.json
py scripts/fetch_cafci.py diario --no-cache
# ── CONSULTAS SOBRE EL CACHE ───────────────────────────────────────────
# Buscar fondo por nombre (parcial, case-insensitive)
py scripts/fetch_cafci.py buscar "ahorro"
py scripts/fetch_cafci.py buscar "delta"
py scripts/fetch_cafci.py buscar "renta fija"
# Resolver IDs (mas compacto: solo fondo_id, clase_id, nombres)
py scripts/fetch_cafci.py resolve "ieb estrategico"
py scripts/fetch_cafci.py resolve "1810"
# Top N por patrimonio en una categoria del diario
py scripts/fetch_cafci.py top "Mercado de Dinero Peso Argentina"
py scripts/fetch_cafci.py top "Mercado de Dinero Peso Argentina" --limit 20
py scripts/fetch_cafci.py top "Renta Variable Peso Argentina"
py scripts/fetch_cafci.py top "Renta Fija Peso Argentina" --limit 5
# ── FICHAS INDIVIDUALES ────────────────────────────────────────────────
# Ficha markdown (rendimientos TNA: 7d/1m/90d/180d/YTD/12m + datos del fondo)
py scripts/fetch_cafci.py ficha 304 308 # 1810 Ahorro
py scripts/fetch_cafci.py ficha 1717 5772 # otro fondo
py scripts/fetch_cafci.py ficha 304 308 -o ficha.md # guarda markdown
# Composicion de cartera (top activos + porcentaje)
py scripts/fetch_cafci.py cartera 304 308
py scripts/fetch_cafci.py cartera 1717 5772
# Ficha COMPLETA todo-en-uno (combina catalogo + diario + ficha + cartera)
py scripts/fetch_cafci.py fondo 304 308
py scripts/fetch_cafci.py fondo 304 308 -o 1810_ahorro_completo.json
# ── COMBINADO ──────────────────────────────────────────────────────────
# Catalogo + diario juntos (sin fichas individuales)
py scripts/fetch_cafci.py all -o cafci_snapshot.json
# ── OUTPUT ─────────────────────────────────────────────────────────────
# Modo silencioso (solo JSON/markdown, sin logs)
py scripts/fetch_cafci.py top "Mercado de Dinero Peso Argentina" -q
Endpoints disponibles
| Modo | Data | URL | |------|------|-----| | catalogo | Catalogo: 1152 fondos, 4615 clases, IDs, honorarios, metadata | GET /consulta-de-fondos.json | | diario | Snapshot diario: VCP, patrimonio, market share, variaciones | GET /pb_get (XLSX) | | ficha FONDO CLASE | Ficha markdown: rendimientos TNA por periodo | GET defuddle.md/.../fondos/{F}?clase={C} | | cartera FONDO CLASE | Composicion de cartera (top activos + %) | GET .../fondos/{F}?clase={C} (HTML) | | buscar QUERY | Buscar fondos por nombre parcial | (local, sobre catalogo) | | resolve QUERY | Resolver fondoId/claseId desde nombre | (local, sobre catalogo) | | top CATEGORIA | Top N por patrimonio en una categoria | (local, sobre diario) | | fondo FONDO CLASE | Ficha completa todo-en-uno (combina los 4 endpoints) | (local + 4 requests) | | all | Snapshot catalogo + diario | (local + 2 requests) |
Total: 4 endpoints HTTP + 5 funciones de consulta sobre cache.
Cache local
Los datasets pesados (catalogo + diario) se cachean una vez por dia en el directorio temporal del sistema:
$TMP/cafci-catalog-YYYY-MM-DD.json (~2.7 MB)
$TMP/cafci-daily-YYYY-MM-DD.json (~1-2 MB)
- Windows:
C:\Users\\AppData\Local\Temp\ - Linux/Mac:
/tmp/
Si vas a hacer multiples consultas en el dia (typical workflow), reusan el cache automaticamente. Forzar refetch con --no-cache.
Tipos de renta soportados
| Tipo | Cantidad fondos | |------|-----------------| | Renta Fija | 542 | | Renta Mixta | 271 | | Mercado de Dinero | 96 | | Renta Variable | 76 | | PyMes | 65 | | Retorno Total | 42 | | Infraestructura | 23 | | Fondos Cerrados | 22 | | ASG | 10 | | RG900 | 5 |
Categorias del DIARIO (para top)
Las categorias del diario combinan tipo_renta + moneda + region como string. Ejemplos comunes:
| Categoria | Cobertura | |-----------|-----------| | Renta Variable Peso Argentina | Acciones argentinas | | Mercado de Dinero Peso Argentina | Money Market $ | | Renta Fija Peso Argentina | Bonos $ | | Renta Fija Dolar Estadounidense Argentina | Bonos USD argentinos | | Renta Mixta Peso Argentina | Fondos mixtos $ | | Retorno Total Peso Argentina | Total return $ |
> Para ver lista completa: py scripts/fetch_cafci.py diario -q | jq '.categorias'
Consideraciones tecnicas
Datos devueltos por catalogo
Top-level:
| Campo | Descripcion | |-------|-------------| | generated_at | Timestamp ISO del catalogo. | | total_fondos, total_clases | Contadores. | | filtros | Catalogos de enums: tipo_renta, region, moneda, benchmark, duration, horizonte, sociedad_gerente, tipo_dinero, tipo_renta_mixta. | | fondos[] | Array de fondos. |
Cada fondos[] tiene id, nombre, codigocnv, estado, objetivo, tipodinero, valuacion, diasliquidacion, inicio, sociedadgerente, sociedaddepositaria, moneda, tiporenta, region, duration, benchmark, horizonte y clases[].
Cada clases[] tiene id, nombre, moneda, inversionminima, honorarios (ingreso, rescate, transferencia, administraciongerente, administraciondepositaria, gastoordinariogestion), suscripcion, liquidez, rg384, logabierto, tickerbloomberg, tickerisin.
> ⚠️ honorarios.* son strings (no floats). Castear con float() antes de comparar.
Datos devueltos por diario
{
"fecha_reporte": "2026-06-04",
"categorias": ["Renta Variable Peso Argentina", ...],
"fondos": [
{
"nombre": "Allaria Equity Selection - Clase A",
"categoria": "Renta Variable Peso Argentina",
"moneda": "ARS",
"region": "Arg",
"horizonte": "Cor",
"fecha": "2026-06-04",
"vcp_actual": 1642.85,
"vcp_anterior": 1628.345,
"variacion_dia_pct": 0.891,
"vcp_reexp_pesos": 1642.85,
"variacion_mes_pct": -1.181,
"variacion_ytd_pct": 11.939,
"variacion_12m_pct": 61.542,
"cantidad_cuotapartes": 1276470413.29,
"patrimonio": 2097049572.01,
"market_share": 0.107,
"depositaria": "Banco Comafi S.A.",
"codigo_cnv": "1603"
}
]
}
Datos devueltos por cartera
{
"fondo_id": 304,
"clase_id": 308,
"fecha_cartera": "15/05/2026",
"composicion": [
{"nombre": "Cta Cte $ Rem Bco Credico", "porcentaje": 17.4},
{"nombre": "Pzo Fi $ Bco Nacion", "porcentaje": 14.8},
...
{"nombre": "Resto de Activos", "porcentaje": 29.2}
]
}
> CAFCI publica solo los top ~14 activos + "Resto de Activos" agrupado. > La fecha de cartera tiene delay de ~2-3 semanas vs el diario.
Datos devueltos por fondo (todo-en-uno)
{
"meta": { ...del catalogo... },
"diario": { ...del XLSX... },
"ficha_md": "...markdown defuddle...",
"cartera": { ...composicion... }
}
Workflows recomendados
A) Top N por patrimonio con fees:
top "" --limit N→ lista de fondos- Para cada
nombre,resolvepara conseguirfondo_id, clase_id - Buscar honorarios en
catalogoporclases[].nombreexacto
B) Ficha completa de un fondo:
resolve ""→ conseguir IDsfondo FONDO_ID CLASE_ID→ todo-en-uno
C) Cuando el usuario no especifica clase:
- Usar
buscaroresolvey mostrar las clases disponibles - Si hay una sola, continuar automaticamente con esa
Flags
| Flag | Descripcion | |------|-------------| | --limit N | Cantidad de resultados (top). Default: 10 | | --no-cache | Forzar refetch de catalogo/diario (ignorar cache local) | | -o archivo | Guardar output a archivo JSON o markdown | | -q / --quiet | Modo silencioso (solo JSON/markdown, sin logs) |
Rate limiting
No hay rate limiting documentado. Recomendado:
- Minimo 0.3 segundos entre requests a CAFCI.
- Para
defuddle.md(proxy externo), esperar mas si hay timeouts. - Para batches grandes, usar pool de concurrencia max 5.
Manejo de errores
| Status | Causas tipicas | |--------|----------------| | 200 | OK | | 403 Route not allowed | Path discontinuado de la API REST anterior | | 403 (en /pb_get) | Faltan headers de browser (Origin, Referer) — el script ya los envia | | 404 | URL mal formada o IDs inexistentes | | Timeout en defuddle.md | Proxy externo lento — reintentar |
Encoding
UTF-8 valido. Las consolas Windows muestran ? para acentos pero los archivos UTF-8 se guardan correctamente (el script usa ensure_ascii=False).
Estructura del skill
skills/cafci/
├── SKILL.md # Este archivo (guia rapida)
├── references/
│ └── REFERENCE.md # Documentacion completa de los 4 endpoints + cache
└── scripts/
└── fetch_cafci.py # Script principal
> Documentacion detallada: Consultar [references/REFERENCE.md](./references/REFERENCE.md) > para schemas JSON completos, tablas de campos exhaustivas, codigos de > tipo_renta/region/horizonte/moneda, cache local, manejo de errores y > consideraciones tecnicas.
> Inspirado en: ferminrp/agent-skills/cafci-fondos-comunes-argentina > — esta implementacion porta el mismo diseño de 4 fuentes a la arquitectura > SKILL.md / references/REFERENCE.md / scripts/fetch*.py del repo.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: gauss314
- Source: gauss314/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.