René's URL Explorer Experiment


Title: feat(resolver): asset classifier mapping identifiers to specific taxonomy by robertoecf · Pull Request #33 · robertoecf/OpenFinData · GitHub

Open Graph Title: feat(resolver): asset classifier mapping identifiers to specific taxonomy by robertoecf · Pull Request #33 · robertoecf/OpenFinData

X Title: feat(resolver): asset classifier mapping identifiers to specific taxonomy by robertoecf · Pull Request #33 · robertoecf/OpenFinData

Description: O que resolve_asset(identifier) — resolver determinístico que mapeia qualquer identificador de ativo brasileiro (ticker/CNPJ/ISIN/nome) para uma taxonomia macro de alocação (RF / RV / Multimercado / Alternativos / Estruturados). Exposto como biblioteca (findata.resolver.resolve_asset()), REST (GET /resolver/resolve) e tool MCP resolve_asset. 📄 Contrato da feature: docs/RESOLVER.md. Dois eixos (decisão de modelo) macro_class = classe de ativo pura: RF / RV / Multimercado / Alternativos / Estruturados (+ Indefinido). exposure = geografia ortogonal: Brasil / Internacional. B3 = domicílio do ativo, não a exposição → IVVB11, BDR, FIA global = RV + Internacional. Nota: geografia fica no eixo exposure, não em macro_class. Os testes deste PR fixam macro_class != "Internacional". Campos de auditoria Certeza fiscal: lei_12431_status (confirmed/candidate/not_applicable/unknown) + isento_status. Heurística emissor+IPCA → candidate (confirmar ISIN); infra explícito (FI-Infra) → confirmed; CRA/CRI/LCI-LCA → confirmed_exempt. signals[]: trilha estruturada — qual regra disparou + evidência concreta (ex.: debenture / DEB / basis=heuristic;indexador=IPCA+). source + confidence + as_of (America/Sao_Paulo) + cascade. Cascata Núcleo openfindata (curated → rules) resolve o test set offline; providers externos (Mais Retorno MCP / CVM-B3 / web search restrito) são ponto de extensão injetável (AssetProvider), consultado só quando o resultado é fraco. Uma falha de provider é isolada (provider_error: no cascade) e nunca derruba o resultado determinístico. No estado atual só o degrau 1 está ligado (externos = stubs a conectar no deploy). Test set (passa 100%, offline) Identificador macro_class exposure nota IFRA11 / FI ITAUINFRA Renda Fixa Brasil ETF de debêntures de infra; "Indexada à Inflação"; isento confirmed ARBOR FIC FIA Renda Variável Internacional mandato global sem IE WHG GLOBAL FIC FIA IE Renda Variável Internacional estrutura IE DEB PETROBRAS IPCA+ Renda Fixa Brasil incentivada candidate (confirmar ISIN) COE Estruturados (n/a) kind=coe, nunca ETF "Crédito Estruturado" (Warren/AMW) Renda Fixa Brasil name-trap IVVB11 Renda Variável Internacional ETF de ações S&P 500 HGLG11 / MXRF11 Renda Variável Brasil subclasse FII Reviews aplicadas Adversarial review (Codex, cross-host) — veio DO_NOT_MERGE (1 P0 + 3 P1); todos corrigidos: P0 isento heurístico → candidate + confidence 0.7 abaixo do short-circuit; IE/LC/LF crus, substring LCI, seed ARBOR, ETF RF underlying, as_of fuso → corrigidos. CI review bots (Gemini + CodeRabbit) — todas as threads endereçadas e resolvidas: gate de PARTICIPACOES/MACRO/ACOES/EQUITY em contexto de fundo (evita nome de empresa); subclasse de Tesouro pelo código do título (NTN-B → inflação); modelos contract com extra="forbid"; isolamento de falha de provider; matching token-aware no seed (ARBOR FIA não casa ARBOR FIAGRO); ticker de sufixo desconhecido → Indefinido; predicados has_token/name_contains dobram os argumentos; remoção de double-fold; e doc drift (macro_class não lista mais "Internacional"). Validação 282 passed, 15 deselected (testes live de rede), ruff + mypy limpos REST + MCP testados end-to-end; REST surface 95 → 96; MCP curado 24 → 25 Follow-ups restantes (pós-merge) Wire dos providers externos reais (Mais Retorno MCP, web search) Confirmação ISIN-level da incentivada via ANBIMA/debentures.com.br Correção do spec doc (openfindata-mcp-spec.md), mantido no repo privado do spec 🤖 Generated with Claude Code

Open Graph Description: O que resolve_asset(identifier) — resolver determinístico que mapeia qualquer identificador de ativo brasileiro (ticker/CNPJ/ISIN/nome) para uma taxonomia macro de alocação (RF / RV / Multimercado ...

X Description: O que resolve_asset(identifier) — resolver determinístico que mapeia qualquer identificador de ativo brasileiro (ticker/CNPJ/ISIN/nome) para uma taxonomia macro de alocação (RF / RV / Multimercado ...

Opengraph URL: https://github.com/robertoecf/OpenFinData/pull/33

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:2194791f-0eeb-98b7-0db8-e0f6d154946e
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idA3B4:19EE8A:23D7E71:303FA50:6A65633D
html-safe-nonced6242cbfe2e574e92d3a1225eb5dd4e036e36826b5f55710368c9661ede4bd87
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBM0I0OjE5RUU4QToyM0Q3RTcxOjMwM0ZBNTA6NkE2NTYzM0QiLCJ2aXNpdG9yX2lkIjoiMTY1OTI5ODg1NDk2NDkxMjk1NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac639b9f18086c7e56335277f712a8d007606a61923bc38f0bea67477c1d87c3b6
hovercard-subject-tagpull_request:3959452260
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
twitter:imagehttps://avatars.githubusercontent.com/u/54923863?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/54923863?s=400&v=4
og:image:altO que resolve_asset(identifier) — resolver determinístico que mapeia qualquer identificador de ativo brasileiro (ticker/CNPJ/ISIN/nome) para uma taxonomia macro de alocação (RF / RV / Multimercado ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/robertoecf/OpenFinData git https://github.com/robertoecf/OpenFinData.git
octolytics-dimension-user_id54923863
octolytics-dimension-user_loginrobertoecf
octolytics-dimension-repository_id1214516543
octolytics-dimension-repository_nworobertoecf/OpenFinData
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1214516543
octolytics-dimension-repository_network_root_nworobertoecf/OpenFinData
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release309153364422b3c499922d1a2a6404910a58ed8e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Frobertoecf%2FOpenFinData%2Fpull%2F33%2Fcommits%2F7aec2ab1132344fe798f96a9b62af37a57ad947d
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Frobertoecf%2FOpenFinData%2Fpull%2F33%2Fcommits%2F7aec2ab1132344fe798f96a9b62af37a57ad947d
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Fcommits&source=header-repo&source_repo=robertoecf%2FOpenFinData
Reloadhttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
Reloadhttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
Reloadhttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
robertoecf https://github.com/robertoecf
OpenFinDatahttps://github.com/robertoecf/OpenFinData
Notifications https://github.com/login?return_to=%2Frobertoecf%2FOpenFinData
Fork 2 https://github.com/login?return_to=%2Frobertoecf%2FOpenFinData
Star 5 https://github.com/login?return_to=%2Frobertoecf%2FOpenFinData
Code https://github.com/robertoecf/OpenFinData
Issues 1 https://github.com/robertoecf/OpenFinData/issues
Pull requests 0 https://github.com/robertoecf/OpenFinData/pulls
Actions https://github.com/robertoecf/OpenFinData/actions
Projects https://github.com/robertoecf/OpenFinData/projects
Security and quality 0 https://github.com/robertoecf/OpenFinData/security
Insights https://github.com/robertoecf/OpenFinData/pulse
Code https://github.com/robertoecf/OpenFinData
Issues https://github.com/robertoecf/OpenFinData/issues
Pull requests https://github.com/robertoecf/OpenFinData/pulls
Actions https://github.com/robertoecf/OpenFinData/actions
Projects https://github.com/robertoecf/OpenFinData/projects
Security and quality https://github.com/robertoecf/OpenFinData/security
Insights https://github.com/robertoecf/OpenFinData/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Frobertoecf%2FOpenFinData%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Frobertoecf%2FOpenFinData%2Fissues%2Fnew%2Fchoose
robertoecfhttps://github.com/robertoecf
mainhttps://github.com/robertoecf/OpenFinData/tree/main
claude/kind-euler-06c857https://github.com/robertoecf/OpenFinData/tree/claude/kind-euler-06c857
Conversation 34 https://github.com/robertoecf/OpenFinData/pull/33
Commits 8 https://github.com/robertoecf/OpenFinData/pull/33/commits
Checks 6 https://github.com/robertoecf/OpenFinData/pull/33/checks
Files changed https://github.com/robertoecf/OpenFinData/pull/33/files
Please reload this pagehttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
feat(resolver): asset classifier mapping identifiers to specific taxonomy https://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d#top
Show all changes 8 commits https://github.com/robertoecf/OpenFinData/pull/33/files
24e77d7 feat(resolver): asset classifier mapping identifiers to Wealthuman ta… robertoecf Jun 29, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/24e77d79da474c2473794bdb5b4e668357a79558
d2e8ebc feat(resolver): add fiscal-certainty axis to debenture/tax classifica… robertoecf Jun 30, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/d2e8ebcbd9648eb878f310eddf4e9b7a390954b7
7aec2ab fix(resolver): keep debenture=None for Tesouro-backed RF ETFs robertoecf Jun 30, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
f67cb82 feat(resolver): structured signals audit trail robertoecf Jun 30, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/f67cb822bde10caa41083dcedaabca56a0784a46
70361eb fix(resolver): address review-bot findings + doc drift robertoecf Jun 30, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/70361eb799d2636d07daba8aefec242a4035fad5
c802076 docs(resolver): client-facing contract for resolve_asset (Wealthuman … robertoecf Jun 30, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/c80207619f2f69163a75f1e2854d983126af025e
63b5b3f fix(resolver): address remaining CodeRabbit review threads robertoecf Jun 30, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/63b5b3f8e36746314eed2104b5466a0899281963
f8eb870 docs(resolver): genericize taxonomy naming for the public repo robertoecf Jul 8, 2026 https://github.com/robertoecf/OpenFinData/pull/33/commits/f8eb870e539e7fced8bdefde3f56b162383a7a19
Clear filters https://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
Please reload this pagehttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
Please reload this pagehttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
Prev https://github.com/robertoecf/OpenFinData/pull/33/commits/d2e8ebcbd9648eb878f310eddf4e9b7a390954b7
Next https://github.com/robertoecf/OpenFinData/pull/33/commits/f67cb822bde10caa41083dcedaabca56a0784a46
Please reload this pagehttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d
https://github.com/robertoecf
https://github.com/claude
robertoecfhttps://github.com/robertoecf/OpenFinData/commits?author=robertoecf
claudehttps://github.com/robertoecf/OpenFinData/commits?author=claude
src/findata/resolver/seed.pyhttps://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d#diff-26a3c7e08b1b26995e4dd4020f34a8ca726cf65cad406abbb59f93f8f7481e9b
View file https://github.com/robertoecf/OpenFinData/blob/7aec2ab1132344fe798f96a9b62af37a57ad947d/src/findata/resolver/seed.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/robertoecf/OpenFinData/pull/33/commits/{{ revealButtonHref }}
https://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d#diff-26a3c7e08b1b26995e4dd4020f34a8ca726cf65cad406abbb59f93f8f7481e9b
https://github.com/robertoecf/OpenFinData/pull/33/commits/7aec2ab1132344fe798f96a9b62af37a57ad947d#diff-26a3c7e08b1b26995e4dd4020f34a8ca726cf65cad406abbb59f93f8f7481e9b
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.