# PR-09.6 - ISA-Scoped Intrinsic Registry as Single Source of Truth

## Briefing

Hoje o mapeamento `canonicalName@version -> finalId` ainda e mantido em dois lugares (compiler e runtime), com teste de paridade.
Isso reduz risco, mas ainda nao elimina dual-authoring.

## Motivation

### Dor atual que esta PR resolve

1. Fonte duplicada para IDs finais de intrinsic.
2. Risco operacional de drift entre compiler e runtime.
3. Evolucao de intrinsics depende de sincronizacao manual.

## Target

Definir um artefato unico, versionado e vinculado ao profile ISA para o registry de intrinsics:

1. artefato canonico de registry (`intrinsic-registry-v1`),
2. ownership normativo no boundary ISA/profile,
3. consumo por compiler e runtime a partir da mesma fonte.

## Dependencies

Prerequisitos diretos:

1. `PR-08.5` (paridade compiler-runtime existente)
2. `PR-09.7` (normalizacao de consumo no compiler)

## Scope

1. Definir formato normativo do artefato (CSV/TOML/JSON) no boundary ISA.
2. Definir local canonico e versionamento do artefato.
3. Definir contrato de evolucao:
   - adicao de intrinsic,
   - deprecacao,
   - compatibilidade de IDs.
4. Definir gate de paridade contra consumidores.

## Non-Goals

1. Nao alterar semantica de opcode `INTRINSIC`.
2. Nao redesenhar toda a arquitetura de builtins do runtime nesta PR.

## Method

### O que deve ser feito explicitamente

1. Criar documento de formato canonico do registry:
   - chave canonica,
   - versao canonica,
   - final id,
   - constraints de unicidade.
2. Declarar ownership do artefato no profile ISA.
3. Definir pipeline de validacao:
   - parser estrito,
   - check de unicidade de identity e final id,
   - check de ordenacao deterministica.
4. Definir workflow de manutencao para adicao de intrinsic.

## Acceptance Criteria

1. Existe uma unica fonte versionada para IDs finais de intrinsic.
2. Runtime e compiler referenciam formalmente essa fonte.
3. Processo de evolucao de intrinsics fica deterministico e auditavel.

## Tests

1. Testes de parser/validacao do artefato canonico.
2. Testes de paridade de consumidores contra o artefato.
3. Gate de CI que falha em divergia do mapping.

## Affected Documents

1. `docs/general/specs/20. IRBackend to IRVM Lowering Specification.md`
2. `docs/general/specs/15. Bytecode and PBX Mapping Specification.md`
3. `docs/pbs/specs/6.1. Intrinsics and Builtin Types Specification.md`
4. `docs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md`
5. Runtime specs correspondentes (ajuste posterior no repo runtime).

## Open Questions

1. Local canonico final do artefato: `runtime` (recomendado) ou `shared-metadata` dedicado. runtime
