Repository navigation
docs(roadmap): cure the plan after the D28/D29 batch — M13, open corrections, ingestion and gate integrity - #522
Conversation
…ections, ingestion and gate integrity The roadmap was last dated 2026-11-09 and missed the D29 ratification (#518) and the S503a limits the dogfood found (#520): it claimed the gate "detects against the ledger" and asked for a signed receipt without naming the integrity hole the record still has. - Table: M12 row states S503a's real comparison (last recorded egress) and #520; new M13 row for `curate` (D29 ratified, no code yet). - Security section: M12 names what S503a ships and #520 as the open integrity fix; the ingestion row names #508 (general migrate) and #478 (scaffold). - New "correcciones abiertas" section: #519 (path-dependent test), #507 (release:verify race), #521 (D29 citation fix, PR open), #493 (claim posture). - Date bumped to 2026-11-11 and the source is the verified state. Refs #503 #501 #519 #507 #521 #493 #508 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash (deepseek-official) → deepseek-v4.1-flash-1017 (openrouter) Signed-off-by: Christian Luciani <cluciani@gmail.com>
🔎 Review — FAILVerdicto: FAIL head_sha: 431786f116a0
verdict: FAIL
findings: {blocker: 0, major: 4, nit: 1}
class_delta: no-medido
class_delta_reason: first-pass
in_diff: 5
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 4VerdictoFAIL — el PR hace lo que dice en su idea (registra D28/S503a y D29, abre M13, Findings (uno por bloque)F1 — docs/ROADMAP.md:144 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-11)" · recurrence:new
F2 — docs/ROADMAP.md:138 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-11)" · recurrence:new
F3 — docs/ROADMAP.md:146 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-11)" · recurrence:new
F4 — docs/ROADMAP.md:102 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"El ingreso de datos que hace útil D27/D29" · recurrence:new
F5 — docs/ROADMAP.md:100 · NIT · diff · class:2 · surface:docs/ROADMAP.md§"El ingreso de datos que hace útil D27/D29" · recurrence:new
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
…head The premerge review (FAIL, 4 majors) found the new claims about the tracker stale at the head that would merge. Re-derived against origin/main@a2e8bbc: - F1: #521 is merged (a2e8bbc), not an open PR. - F2: #519 is closed by #527 — dropped from the open list. - F3: #493's A/B/C/D decision was ratified 2026-11-12 (A now, B as direction, C future, D rejected); the work lives in #529. - F4: `pasco migrate` v2.0 already ships in main (#509); #508 is the general contract and declares itself partially landed. - F5: the section header no longer calls #508/#478 "data ingestion". - Adds #520 (operator decision recorded, draft PR #528) to the open list. Refs #522 #493 #529 #520 #508 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación del review — head
|
| # | Antes | Ahora (verificado) |
|---|---|---|
| F1 | #521 «(PR abierto)» | Mergeada en a2e8bbc; movida a «cerrados en esta ronda» |
| F2 | #519 vigente | Cerrado por #527 (494d636); fuera de la lista de abiertos |
| F3 | #493 «Espera decisión A/B/C» | Decidida 2026-11-12 (A ahora, B como dirección v1.17, C futura, D rechazada); needs-decision retirado; la construcción vive en #529 |
| F4 | «El migrate de v2.0 … es su primera instancia» (pendiente) |
packages/cli/src/commands/migrate.ts ya está en main (#509); #508 es el contrato general y se declara parcialmente aterrizado |
| F5 | «El ingreso de datos…» | «Trabajo de registro que hace útil D27/D29» (#508 = migración, #478 = docs del scaffold) |
Además: #520 entra a la lista de abiertos (decisión del operador registrada — UNA memoria; implementación en draft PR #528), y la fecha sube a 2026-11-13.
Gates en ec9da9a (2026-11-13): spec-drefs in sync (29 filas §5) · agnostic PASS (781 archivos) · evidence in sync · link-check in sync (314 links) · site-check PASS (248 ids, 524 links) · version-check PASS. CI en curso.
Fuera de este PR, reportado: el draft #526 (D30, content/ → facts/) toca docs/ROADMAP.md y está CONFLICTING; si mergea antes, este PR necesita otro rebase — y D30 cambia la ruta del ledger de D29 (content/curations.yaml → facts/curations.yaml) en §7.12.
🔎 Review — PASS-CON-RIESGOSVerdicto: PASS-CON-RIESGOS head_sha: ec9da9afa00c
verdict: PASS-CON-RIESGOS
findings: {blocker: 0, major: 1, nit: 1}
class_delta: {new: [2, 4], repeat: []}
in_diff: 2
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 4VerdictoPASS-CON-RIESGOS — la reconciliación del pase 1 es real y verificada línea por línea contra el tracker, no una tabla de intenciones: los cuatro majors y el nit de Lo que impide PASS es que una fila nueva afirma un estado del tracker que es falso al head — #493 declara « Findings (uno por bloque)F1 — docs/ROADMAP.md:148 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:new
F2 — docs/ROADMAP.md:3 · NIT · diff · class:2 · surface:docs/ROADMAP.md§encabezado · recurrence:new
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
…y cited issue has a row The pass-2 review found two new findings at the head: - F1: the open list said `needs-decision` was withdrawn without naming the one issue of the D29 cluster that still carries it — #501 (M13). It now leads the list as the open decision (which slice, and its S503b dependency). - F2: the header promised #517/#518/#521/#527/#529 but #529 had no row of its own and #517/#518 appeared only in the header. The header now says what each number is, #529 has its own row, and the section closes with the issues that are outside the cluster (#508, #478, #503). Refs #501 #529 #520 #507 #493 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación pase 2 — head
|
| # | Antes | Ahora |
|---|---|---|
| F1 | «needs-decision retirado» sin nombrar el que sigue vivo |
#501 (M13) abre la lista como la única decisión abierta del racimo D29 (needs-decision vivo, verificado): la decisión es el slice y su dependencia con S503b; el contrato ya está ratificado (D29, §7.12) |
| F2 | Encabezado prometía #529 sin fila propia; #517/#518 solo en el encabezado | #529 tiene fila propia («abierto, sin claim»); el encabezado dice qué es cada número (#517/#518 = S503a + D29; #521/#527 = cerrados; #529 = abierto); la sección cierra con lo que queda fuera del racimo (#508, #478, #503) |
Gates en 8c5981a (2026-11-13): spec-drefs in sync (29 filas §5, 594 refs) · agnostic PASS (781 archivos) · evidence in sync · link-check in sync (314 links) · site-check PASS (248 ids, 524 links) · version-check PASS. CI en curso.
Sigue reportado, no finding: el draft #526 (D30, content/ → facts/) toca docs/ROADMAP.md, está CONFLICTING y cambiaría la ruta del ledger de D29 que este documento cita.
🔎 Review — PASS-CON-RIESGOSVerdicto: PASS-CON-RIESGOS head_sha: 8c5981a4ede6
verdict: PASS-CON-RIESGOS
findings: {blocker: 0, major: 2, nit: 2}
class_delta: {new: [], repeat: ["4", "2"]}
in_diff: 4
in_repo: 0
fuera: 0
assumptions_declared: 3
limits_noted: 3VerdictoPASS-CON-RIESGOS (informativo — no bloquea merge) Findings (uno por bloque)F1 — docs/ROADMAP.md:22 · MAJOR · diff · class:2 · surface:docs/ROADMAP.md§"Estado real (verificado, no declarado)" · recurrence:repeat · ESCALATE(2)
F2 — docs/ROADMAP.md:149 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F3 — docs/ROADMAP.md:21 · NIT · diff · class:2 · surface:docs/ROADMAP.md§"Estado real (verificado, no declarado)"
F4 — docs/ROADMAP.md:149 · NIT · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)"
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
… unassigned version The pass-3 review found two majors at the head, both repeats of the same classes (over-claiming the tracker): - F1: the M13 row named a milestone the SPEC does not have (§12 lists M1–M12). The "SPEC dice" cell now says so, and M13 stays a roadmap-only grouping of D29 with its anchor in §5/§7.12. - F2: "(v1.17)" assigned a contract version the decision never assigned — #493 says a FUTURE promotion needs a major bump, not that it is v1.17. The line now states the condition, and "sin claim" is anchored to the check date. - F3: the M12 row now carries #520 like the security section does. - F4: #519 (issue) and #521 (PR) are labelled by kind in the closed list. Refs #501 #529 #520 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación pase 3 — head
|
| # | Antes | Ahora |
|---|---|---|
| F1 | La fila M13 nombraba un milestone que el SPEC no tiene | La celda «SPEC dice» dice «no está en el SPEC — §12 lista M1–M12»; M13 queda como agrupación de roadmap de D29 con ancla en §5/§7.12 |
| F2 | «B queda registrada como dirección (v1.17)» | Se quita el número no asignado: la línea dice la condición que fijó #493 (bendición explícita, bump de mayor, evidencia de A en uso); «sin claim» queda anclado a la fecha de verificación (2026-11-13) |
| F3 | La fila M12 omitía #520 | La fila M12 dice «Integridad del registro abierta en #520 (draft PR #528)», igual que la sección de seguridad |
| F4 | #521 (PR) listado como «cerrado» junto a #519 (issue) | La lista dice issue #519 (cerrado por PR #527) y PR #521 (mergeada, a2e8bbc) |
Gates en 04e0c48 (2026-11-13): spec-drefs in sync (29 filas §5, 594 refs) · agnostic PASS (781 archivos) · evidence in sync · link-check in sync (314 links) · site-check PASS (248 ids, 524 links) · version-check PASS. CI en curso.
Sigue reportado, no finding: el draft #526 (D30, content/ → facts/) toca docs/ROADMAP.md, está CONFLICTING y cambiaría la ruta del ledger de D29 que este documento cita.
🔎 Review — FAILVerdicto: FAIL head_sha: a563b285
verdict: FAIL
findings: {blocker: 0, major: 2, nit: 1}
class_delta: {new: [], repeat: [4]}
in_diff: 3
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 5VerdictoFAIL — el PR hace lo que dice (registra D28/S503a y D29, abre M13, suma las Es la misma clase (4) que el pase 3 ya escaló: aquel pase corrigió la fila Findings (uno por bloque)F1 — docs/ROADMAP.md:21 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Estado real (verificado, no declarado)" · recurrence:repeat · ESCALATE(4)
F2 — docs/ROADMAP.md:142 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F3 — docs/ROADMAP.md:148 · NIT · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:new
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
…change The pass-4 review (head a563b28) found the same class again: the document still described #520 as an open draft and placed the contract bump on B. - F1/F2: #520 merged in c22df70 (PR #528) — the memory is one and chained to the log (§7.11). The M12 row, the security section and the open list now say what shipped and what remains (authenticity: coherent rewrite / forged history, closed by S503b), instead of "still falsifiable / draft PR #528". - F3: #529's A touches the contract (optional field in $defs/experienceItem, pnpm gen:zod); B is the direction that needs the major bump, not the other way around. - The header date stays 2026-11-13 (the triage date) and the content is re-derived at the merge head. Refs #520 #528 #529 #493 #503 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación pase 4 — head
|
| # | Antes | Ahora |
|---|---|---|
| F1/F2 | «el registro de autorización todavía es falsificable y eso lo cierra #520» + «implementación en draft PR #528» | Mergeado en c22df70: una sola memoria (baseline.json = manifiesto público) y cadena de integridad en el audit log (§7.11). Lo que queda es la autenticidad — reescrito coherente e historia re-firmada, indetectables sin llave — y eso lo cierra S503b. La fila M12 dice lo mismo en una frase; la lista de abiertos solo registra que el issue sigue abierto por esos dos límites |
| F3 | El bump de mayor quedaba atribuido a B | A toca el contrato (campo opcional en $defs/experienceItem, pnpm gen:zod); B es la dirección que exige el bump de mayor, no al revés |
Gates en 3e5dbe5 (2026-11-13): spec-drefs in sync (29 filas §5, 597 refs) · agnostic PASS (781 archivos) · evidence in sync · link-check in sync (317 links) · site-check PASS (248 ids, 527 links) · version-check PASS. CI en curso.
Sobre el ESCALATE(class:4): no pido otro pase. La causa de la repetición es estructural — el documento afirmaba estado del tracker en tres superficies con redacciones distintas, así que una sola caducidad producía tres afirmaciones falsas. Este pase borra la duplicación: M12 dice estado de milestone, la sección de seguridad dice el contrato, y la lista de abiertos dice qué queda pendiente. Si un pase futuro vuelve a encontrar una caducidad, el instrumento que la cierra es que el documento deje de copiar el tracker y lo cite.
Sigue reportado, no finding: el draft #526 (D30, content/ → facts/) toca docs/ROADMAP.md, está CONFLICTING y cambiaría la ruta del ledger de D29 que este documento cita.
🔎 Review — PASS-CON-RIESGOSVerdicto: PASS-CON-RIESGOS head_sha: 3e5dbe59
verdict: PASS-CON-RIESGOS
findings: {blocker: 0, major: 1, nit: 1}
class_delta: {new: [], repeat: [4, 2]}
in_diff: 2
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 5VerdictoPASS-CON-RIESGOS — este es el quinto pase y el primero en el que las cuatro
El anti-trim no encuentra un trim sin traza. Lo que impide PASS es una sola Findings (uno por bloque)F1 — docs/ROADMAP.md:146 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F2 — docs/ROADMAP.md:3 · NIT · diff · class:2 · surface:docs/ROADMAP.md§encabezado · recurrence:repeat · ESCALATE(2)
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
…top replicating the tracker Pass 5 closed the four escalated classes and found one more of the same kind: - F1: the #520 row invented a reason ("open for the review of those two limits") that exists nowhere. Verified against the tracker and main@a90263d, what is open is the issue's points (2) and (3): the on-ramps still do not name `--confirm`, and SPEC §7's `export profile` row lacks the `--all` rejection clause. The authenticity limits are declared in §7.11 and closed by S503b — not a reason to keep it open. - F2: #517/#518 now say what they are in the closed list instead of appearing only in the header. - Structural (#532): the header states the document cites the tracker with a date instead of replicating it, and the rows stop asserting phase/labels. Also merges origin/main (D30: `facts/`), so the ledger path and the scaffold grain match the contract. Refs #520 #532 #526 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación pase 5 — head
|
| # | Antes | Ahora |
|---|---|---|
| F1 | «El issue sigue abierto por la revisión de esos dos límites» | La fila dice lo que sí está abierto, verificado hoy: los puntos (2)/(3) de #520 — los on-ramps (README, START-HERE, TUTORIAL, USER-GUIDE) no mencionan --confirm, y la fila export profile de SPEC §7 no tiene la cláusula del rechazo de --all (el README del CLI sí). Los límites de autenticidad están en §7.11 y los cierra S503b: no son motivo de apertura |
| F2 | #517/#518 solo en el encabezado | La lista de cerrados dice qué son: S503a + D29 mergeados, sin fila propia porque no queda nada abierto de ellos |
ESCALATE(4), 2.ª reaparición — atendido como pide review-damping: abrí el issue estructural #532 (el roadmap replica estado del tracker en vez de citarlo; cinco pases, cinco caducidades de la misma clase). El documento ahora lo declara en el encabezado y las filas dejan de afirmar fase/label del tracker sin fecha.
También en este head: merge de origin/main (D30, facts/) — el ledger de D29 y el grano del scaffold ya citan facts/curations.yaml.
Gates en 98d3ce1 (2026-11-13): spec-drefs in sync (30 filas §5, 609 refs) · agnostic PASS (781 archivos) · evidence in sync · link-check in sync (317 links) · site-check PASS (248 ids, 527 links) · version-check PASS. CI en curso.
Defecto del instrumento, reportado por el review: el §3 del pack emite git diff main...head y con main avanzado trae el merge ajeno entero. Este head ya contiene origin/main, así que el diff del pack coincide con el del PR (1 archivo).
🔎 Review — FAILVerdicto: FAIL head_sha: 98d3ce1f76b9
verdict: FAIL
findings: {blocker: 0, major: 3, nit: 2}
class_delta: {new: [], repeat: [2, 4]}
in_diff: 5
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 5VerdictoFAIL — este es el sexto pase sobre Las tres majors comparten una sola causa: el documento replica estado del tracker (qué es cierto de un issue, en qué fase está, qué toca) en vez de citarlo. #532 lo nombra como estructural y propone el instrumento; el roadmap no lo adoptó — se limita a declarar en el encabezado que «cita con fecha, no replica» ( Lo que sí sobrevivió: el anti-trim no encuentra ningún trim sin traza, la sección de seguridad M12 dice la verdad del código, la fila #520 post-pase-5 es correcta, y las filas #507/#508/#478/#529 (en lo que no toca el contrato) coinciden con sus issues. Findings (uno por bloque)F1 — docs/ROADMAP.md:145 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F2 — docs/ROADMAP.md:22 · MAJOR · diff · class:2 · surface:docs/ROADMAP.md§"Estado real (verificado, no declarado)" · recurrence:repeat · ESCALATE(2)
F3 — docs/ROADMAP.md:153 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F4 — docs/ROADMAP.md:3 · NIT · diff · class:2 · surface:docs/ROADMAP.md§encabezado · recurrence:repeat · ESCALATE(2)
F5 — docs/ROADMAP.md:141 · NIT · diff · class:2 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)"
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
🔎 Review — FAILVerdicto: FAIL head_sha: 98d3ce1f76b9
verdict: FAIL
findings: {blocker: 0, major: 1, nit: 1}
class_delta: {new: [], repeat: [2, 4]}
in_diff: 2
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 5VeredictoFAIL — séptimo pase sobre el mismo head Findings (uno por bloque)F1 — docs/ROADMAP.md:153 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (triaje 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F2 — docs/ROADMAP.md:3 · NIT · diff · class:2 · surface:docs/ROADMAP.md§encabezado · recurrence:repeat · ESCALATE(2)
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
…asing it Pass 7 found the same class-4 defect on the same surface for the eighth time: the #529 row said "A toca el contrato" while #493's decision says the opposite ("A no toca el contrato. Es aditivo sobre el schema"). The class is the document paraphrasing tracker state, so this pass removes the paraphrase rather than correcting it again (#532). - The "correcciones abiertas" section becomes a citation table: issue, what is open per its own source, and the date/sha it was verified at. No row asserts a phase, a label or a decision in the roadmap's own voice. - The #529 row now states what both sources state: A is additive over the schema (optional field, pnpm gen:zod); B is the direction that needs the operator and the major bump. Refs #532 #529 #493 #520 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación pase 7 — head
|
| # | Antes | Ahora |
|---|---|---|
| F1 | «A toca el contrato» — #493 dice literalmente «A no toca el contrato. Es aditivo sobre el schema» | La fila de #529 cita ambas fuentes: A es aditivo sobre el schema (campo opcional, pnpm gen:zod); B es la dirección que exige bendición del operador y bump de mayor |
| F2 | El encabezado prometía «cita con fecha» y el cuerpo seguía replicando estado sin fechas | La sección «Ahora — correcciones abiertas» es ahora una tabla de citas: issue · qué queda abierto según su propia fuente · fecha/sha de verificación. Ninguna fila afirma fase, label ni decisión con la voz del roadmap |
La causa, atacada (#532): seis pases encontraron la misma clase porque el documento parafraseaba el tracker. Ahora cada fila apunta a la fuente y a la fecha; lo que el roadmap afirma de sí mismo es lo que el repo demuestra (archivos, tests, SPEC), no lo que el tracker dice. El criterio de cierre de #532 queda escrito en la propia sección.
Gates en c1c2fa2 (2026-11-13): spec-drefs in sync (30 filas §5, 608 refs) · agnostic PASS (781 archivos) · evidence in sync · link-check in sync (317 links) · site-check PASS (248 ids, 527 links) · version-check PASS. CI en curso.
Nota de proceso: este es el séptimo pase sobre un documento de un solo archivo. Por review-damping no pido otro pase; si aparece otra caducidad, el instrumento es #532 (generar o gatear la columna de estado), no una octava corrección local.
🔎 Review — FAILVerdicto: FAIL head_sha: c1c2fa2a
verdict: FAIL
findings: {blocker: 0, major: 1, nit: 1}
class_delta: {new: [], repeat: [2, 4]}
in_diff: 2
in_repo: 0
fuera: 0
assumptions_declared: 4
limits_noted: 5VeredictoFAIL — octavo pase v2 sobre el PR. El anti-trim mecánico encuentra cero trims Findings (uno por bloque)F1 — docs/ROADMAP.md:148 · MAJOR · diff · class:4 · surface:docs/ROADMAP.md§"Ahora — correcciones abiertas (cita del tracker, 2026-11-13)" · recurrence:repeat · ESCALATE(4)
F2 — docs/ROADMAP.md:3 · NIT · diff · class:2 · surface:docs/ROADMAP.md§encabezado · recurrence:repeat · ESCALATE(2)
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
…already in main The #520 row repeated a claim inherited from the issue's post-merge comment: that the on-ramps still lack `--confirm` and that SPEC §7's export row lacks the `--all` rejection clause. Both were verified FALSE at the head: - commit 3edcc34 (ancestor of main) added `--confirm <digest>` to README, START-HERE, TUTORIAL and USER-GUIDE, and the clause to the §7 export row. - `grep --confirm` on origin/main@a90263d: 1 in each of the four on-ramps; the §7 row carries "the refusal prints the reason and the manifest digest". The row now states what the repo shows and leaves the issue's remaining state to the tracker — the point of #532. Refs #532 #520 Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e Session-Name: Ratificar D25 en el SPEC Models: deepseek-flash → deepseek-v4.1-flash-1017 (openrouter → mistral) Signed-off-by: Christian Luciani <cluciani@gmail.com>
Reconciliación pase 8 — head
|
🔎 Review — PASS-CON-RIESGOSVerdicto: PASS-CON-RIESGOS head_sha: c7670f1a9f07
verdict: PASS-CON-RIESGOS
findings: {blocker: 0, major: 0, nit: 1}
class_delta: {new: [], repeat: ["2"]}
in_diff: 1
in_repo: 0
fuera: 0
assumptions_declared: 3
limits_noted: 3VerdictoPASS-CON-RIESGOS — noveno pase v2 sobre el PR. El anti-trim mecánico encuentra cero trims sin traza (el único marker en líneas borradas, Lo que impide PASS es un único nit de clase 2 que ya apareció en los pases 5, 7 y 8: el encabezado promete «cita con fecha, no se replica (#532)», pero el contrato (el propio encabezado) no define operativamente qué significa «citar» cuando el cuerpo mezcla ambos comportamientos. Findings (uno por bloque)F1 — docs/ROADMAP.md:3 · NIT · diff · class:2 · surface:docs/ROADMAP.md§encabezado · recurrence:repeat · ESCALATE(2)
Cobertura
No pude refutar (lo que sobrevivió)
Asunciones que declarás
Límites de tu review
|
Re-cures
docs/ROADMAP.mdagainst the verified state ofmain@42b809a: it records what shipped (D28/S503a, D29), the integrity hole the dogfood found (#520) and the open corrections.Docs-only: one file,
docs/ROADMAP.md; no SPEC, schema, package or platform change.What changed
--confirm, texto de rechazo de--all) #520; a new M13 row recordscurate(D29 ratified, no code yet).--confirm, texto de rechazo de--all) #520 as the open integrity fix (rewritable authorization memory, audit log without an integrity chain); the vault stays a recommendation.pasco migrategeneral, class A additive / class B--apply-rewrites, never deletes) and docs(scaffold): init's two flavors disagree on what in profiles/ is a deploy artifact (and the user guide repeats the blanket claim) #478 (theinitscaffold does not say what inprofiles/is a deploy artifact).rateagainst output that embeds the fixture path — fails on any checkout whose path contains it #519 (a test whose verdict depends on the checkout path), release: verify fails during npm's async processing window — a 6-minute wait reads as a broken publish #507 (release:verifytreats npm's processing window as FAIL), docs(spec): fix D29's false issue attribution for selection.views #521 (D29 cites the wrong issues forselection.views; PR open), truth is not a gate: a false experience[].highlight passed every check and published on the CV (CLAPPS.AI) #493 (claim without posture reaches the CV).Gates
Run in the worktree on the commit below (2026-11-11):
node scripts/spec-drefs/check.mjs --checknode scripts/agnostic-check/check.mjsnode scripts/evidence-gate/check.mjsW-EVIDENCE-STALEnotes ondocs/STANDARDS.mdare pre-existingpnpm sitenode scripts/link-check/check.mjs --checkpnpm test/pnpm buildare not re-run because the diff is Markdown only; CI (ci) is the barrier.Impact
Impact: none — docs-only. It records S503a's real comparison and D29's ratification, which the roadmap missed, and it names the open fixes (#507, #519, #520, #521, #493) so the next session can pick them up from the plan.
Refs #503 #501 #508 #507 #519 #521 #493
Signature
Session-Id: 809a35be-8b2d-48a9-8e29-527cbd04591e
Session-Name: Ratificar D25 en el SPEC
Models: deepseek-flash (deepseek-official) → deepseek-v4.1-flash-1017 (openrouter)