@ -19,7 +19,7 @@ En inglés, porque el revisor puede no leer español:
1. **Idioma y precedencia: aprobada la propuesta**, con dos cambios: un párrafo al final de §1, no un §0, para no descolocar la numeración; y la regla 4 sin «vectores disputados». Una discrepancia es un defecto, decide el texto, se anota en el HANDOFF y se corrige en la versión siguiente con su caso en §76; hasta entonces los vectores no se tocan, porque los gates no lo permiten. Entre implementaciones, la de referencia primero, como dicen §16 y §67. Si el inglés pasa a normativo se decide en la v1.0.
2. **Las etiquetas del §76: la v0.15 no se abre ahora.** La carta ya declara que todas las revisiones anteriores son de IA. El texto corregido, con la precedencia y el registro de la revisión externa (§75, punto 10), va en la versión que se abra con los hallazgos del revisor. Así se evita un ciclo de tres repos antes de enviar.
3. **TypeScript: cerrar la `0.3.0` en `4e23f88`**, con el tag `v0.3.0` y `main` avanzado, y ese commit en la tabla congelada de la carta y en `artifacts.md`. No es estética: `v0.2.0` tiene el `testdata` en `spec-v0.13` y no tiene la prueba de `tlock_steps.json`, así que el revisor no podría pasar el TypeScript contra los vectores congelados. Renombrar la carpeta `App` no hace falta: el revisor ve el nombre del bundle.
3. **TypeScript: la `0.3.0`, cerrada el 6-10** en `3abd7bf`, sobre `4e23f88`, con el tag `v0.3.0` y `main` avanzado; ese commit está en la tabla congelada de la carta y en `artifacts.md`. No es estética: `v0.2.0` tiene el `testdata` en `spec-v0.13` y no tiene la prueba de `tlock_steps.json`, así que el revisor no podría pasar el TypeScript contra los vectores congelados. Renombrar la carpeta `App` no hace falta: el revisor ve el nombre del bundle.
4. **Traducción: primero, buscar un revisor que lea español.** Elimina la decisión y el trabajo de contrastar cada hallazgo con el texto normativo. Si no lo hay, traducir solo el núcleo normativo, con un borrador de IA y tu revisión: §4 a §7, §10 a §13, §26 a §44.1, §51 a §57, §62.1, §63 y §69 a §72, unas 30 600 palabras de las 52 600 del texto. El resto lo cubre `design_overview.md`, y §76 se resume en una página. La carta dice que toda traducción es informativa y que tú contrastas cada hallazgo con el texto español: ese trabajo es tuyo.
5. **Revisor y alcance: dos niveles, con presupuesto cerrado por nivel.**
- Nivel 1, obligatorio: el protocolo y el Go de referencia como evidencia, con Q1 a Q4, Q6 a Q8 y Q10 a Q12.
@ -44,9 +44,9 @@ La sesión corrigió el 6-10 lo que el paquete encontró atrasado en `datekeys-g
## Orden
1. Cerrar la `0.3.0` de TypeScript.
1. Cerrar la `0.3.0` de TypeScript: hecho, `3abd7bf`.
2. Pasar los tres gates en los commits congelados, con el fuzzing de Go en `39b2033`, que el último fuzzing dejó cuatro commits atrás.
3. Corregir la nota y el paquete: hecho el 6-10 (la cabecera, el paso duplicado, `artifacts.md` §5, la propuesta, los dos hashes del CDDL); falta la tabla congelada con la `0.3.0`, tras el paso 1.
3. Corregir la nota y el paquete: hecho el 6-10 (la cabecera, el paso duplicado, `artifacts.md` §5, la propuesta, los dos hashes del CDDL), y la tabla congelada con la `0.3.0`: hecho.
4. Elegir revisor y nivel de alcance, y pedir presupuesto.
5. Traducir el núcleo, solo si el revisor no lee español.
@ -50,10 +50,10 @@ Scope, budget and timeline are to be agreed with the author.
| CBOR schemas | `datekeys-go/spec/datekeys.cddl`: SHA-256 `35c6e5fb74d65907bcb436242079bcc99cfb81a654a1174f2cac68576bf24a51` at the tag, and `9607d1c7ebd2c09df3969a2749a588cf39bc24fe49a05a5f308b798a3ca621fa` at `22f184c`, which changes only its header comment |
| Shared test data | `datekeys-go/testdata/` at the same tag: 136 files, documented in `testdata/README.md` |
| Reference implementation (Go) | `datekeys-go` at `spec-v0.14` / `39b2033`; its documentation (README, SECURITY.md, `docs/traceability.md`, the header comment of `spec/datekeys.cddl`) brought up to v0.14 at `22f184c`, the head of branch `v0.14`. That commit changes no specification text, no schema rule and no code: in `datekeys.cddl` only its header comment, so its SHA-256 differs from the tag's (row above) |
| TypeScript implementation | `datekeys-ts` 0.2.0, tag `v0.2.0`, commit `8cf0685fb016ae05afcd5b96387b4b884f3ad972` (see the note below) |
Note on TypeScript: `datekeys-ts` 0.2.0 implements specification **0.13** (its `testdata/` is at tag `spec-v0.13`). Spec 0.14 changes no format and no verdict of a Quicknet capsule (spec §70). The v0.14 support of TypeScript (the `tlock_steps.json` test and the one-scheme rule) is in commit `4e23f88`, on a development branch, without a tag. The author decides which one is frozen.
Note on TypeScript: `datekeys-ts` 0.3.0 implements specification 0.14, with its `testdata/` at tag `spec-v0.14`, so it runs against the same frozen vectors as the reference. Its previous version, 0.2.0, implemented 0.13.
| Repository | Role | Frozen at | Language of docs |
|---|---|---|---|
| `datekeys-go` | Specification (`spec/`), CDDL, shared test data (`testdata/`), reference implementation in Go: library and CLI | tag `spec-v0.14`, commit `39b2033e3ccf54a91bda8d7e3ced39b26dbfa58c` | English README (a Spanish one too); spec in Spanish |
| `datekeys-ts` | TypeScript library and static pages `/inspect` and `/create` | tag `v0.2.0`, commit `8cf0685fb016ae05afcd5b96387b4b884f3ad972` (implements spec 0.13; spec 0.14 support is in commit `4e23f88`, untagged) | Spanish README |
| `datekeys-ts` | TypeScript library and static pages `/inspect` and `/create` | tag `v0.3.0`, commit `3abd7bfee88d5e5c09bda20fcec8a4762d6beb19` (implements spec 0.14) | Spanish README |
| `datekeys-dart` | Pure Dart library, for a future Flutter app | branch `v0.14`, commit `013b0695228bae6a4a61e244e679d38f2b8b93fd` | Spanish README |
- The repositories are private, on a Gitea server on the author's LAN (`g.activething.com`). They are not reachable from outside. The author will provide them by another means (for example `git bundle` files or archives); see `NOTA_PARA_EL_AUTOR.md`.
@ -16,7 +16,7 @@
```text
work/
datekeys-go/ at spec-v0.14
datekeys-ts/ at v0.2.0 (the author's machine names this folder App)
datekeys-ts/ at v0.3.0 (the author's machine names this folder App)
datekeys-dart/ at 013b069
```
@ -57,7 +57,7 @@ npm run verify # svelte-check, typecheck, tests with coverage threshold
npm run testdata:check # testdata/ equals ../datekeys-go at the recorded commit
```
Coverage thresholds are 100 % for the cryptographic and format modules listed in its README. A guard test fails if a file of `testdata/` is not used by any test, and `src/lib/dependencies.test.ts` pins the exact runtime dependencies. On 6 October 2026, `npm run verify` passed with 8 030 tests on `4e23f88` (`docs/HANDOFF.md`).
Coverage thresholds are 100 % for the cryptographic and format modules listed in its README. A guard test fails if a file of `testdata/` is not used by any test, and `src/lib/dependencies.test.ts` pins the exact runtime dependencies. On 6 October 2026, `npm run verify` passed with 8 030 tests on `3abd7bf`, the release commit of 0.3.0.
### datekeys-dart (Dart SDK 3.13 or later; Node.js for the JavaScript run)
The Go standard library provides Ed25519 (with strict checks in `internal/ed25519strict`), RSA, ECDSA, SHA-2 and PBKDF2. CBOR (`codec`), DER (`internal/der`) and the CMS/X.509/RFC 3161 reader (`internal/cms`) are the module's own code.
### TypeScript (`datekeys-ts/package.json` at `v0.2.0`, exact versions)
### TypeScript (`datekeys-ts/package.json` at `v0.3.0`, exact versions)