# AS01-F01 — schemas y vectores de autoridad/estado

A1–A6 y la dirección D04–D06 están [adoptadas](https://xcim.org/standardization/source/ACCEPTED-A1-A6.md).
AS01-F01 es una revisión de desarrollo offline, separada de los 135 casos P1
y de WD-02-E1. Las claves/seeds, autoridades y relojes son sintéticos públicos.
**Ningún resultado del paquete permite emitir `XCIM_PASS`.**

Cobertura: 97 escenarios (8 positivos de autoridad, 2 artefactos de
transición/recovery y 87 adversariales), más 37 casos estructurales. Se
verifican bytes/firmas/árboles, no autoridad de un operador real.

- [schemas/](https://xcim.org/standardization/as01/): 19 schemas cerrados JSON Schema 2020-12, incluyendo C1–C8 y auxiliares; identificadores `.invalid`, resolución local.
- [CONTRACT.md](https://xcim.org/standardization/as01/CONTRACT.md): alcance, bytes, compatibilidad, límites y semántica comprobada.
- [DEPENDENCIES.md](https://xcim.org/standardization/as01/DEPENDENCIES.md): lo pendiente, relación con AS-T01–T24 y criterios de cierre.
- [vectors/cases.json](https://xcim.org/standardization/as01/vectors/cases.json): resultados esperados explícitos y patches literales sobre [base.json](https://xcim.org/standardization/as01/vectors/base.json); no auto-resign al verificar.
- [vectors/schema-cases.json](https://xcim.org/standardization/as01/vectors/schema-cases.json): contratos positivos, campos desconocidos negativos y ausencia válida.
- [vectors/claims.json](https://xcim.org/standardization/as01/vectors/claims.json): payloads y los 257 hashes vacíos sparse.
- [vectors/keys-TEST-ONLY.json](https://xcim.org/standardization/as01/vectors/keys-TEST-ONLY.json): seeds y JWK públicos; nunca usar estas claves para autoridad real.
- [vectors/manifest.json](https://xcim.org/standardization/as01/vectors/manifest.json): integridad SHA-256, sin firma ni autoridad de release.
- [tools/check_vectors.py](https://xcim.org/standardization/as01/tools/check_vectors.py) y [tools/crosscheck.mjs](https://xcim.org/standardization/as01/tools/crosscheck.mjs): checker Python y contraste Node parcial.

Desde la raíz del repositorio:

```powershell
.\.venv-ietf\Scripts\python.exe -m pip install -r docs/ietf/as01/requirements.txt
.\.venv-ietf\Scripts\python.exe docs/ietf/as01/tools/check_vectors.py
node docs/ietf/as01/tools/crosscheck.mjs
```

El ZIP de revisión incluye `as01/` y su dependencia pública hermana `p1/`.
Desde la raíz extraída usar `python -m pip install -r as01/requirements.txt`,
`python as01/tools/check_vectors.py` y `node as01/tools/crosscheck.mjs`.
No se necesita issuer, API privada, DNS ni RPC. Instalar dependencias sí requiere
los repositorios de paquetes habituales. Los checks posteriores no consultan red.

Para regeneración explícita: `python docs/ietf/as01/tools/build_schemas.py` y
`python docs/ietf/as01/tools/generate_vectors.py`. Ambos tienen `--check`;
el checker los ejecuta sin sobrescribir. No editar TXT de hashes a mano.

`AS01_AUTHORITY_FIXTURE_OK` sólo verifica relaciones criptográficas y temporales
bajo pins sintéticos. `AS01_ROOT_ROTATION_FIXTURE_OK` verifica un artefacto de
doble quórum, sin instalarlo. `AS01_RECOVERY_REQUIRES_RESYNC` sigue suspendiendo
uso: recuperación no equivale a resynchronización completada ni permiso.
Todos incluyen `can_assert_xcim_pass=false` y dependencias sin resolver.

Python comparte los primitives de bytes P1 publicados; Node no los importa y
recalcula firmas, árboles, sparse, compromisos, quórums y el borde temporal.
No es un segundo receiver completo ni interoperabilidad de equipos distintos.
El historial está acotado y se transporta completo; no hay backend, store de
floors, cliente HTTP protegido ni aceptación SMTP implementados.
