Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions reference/core/control-center/evidence/gap-closure-evidence.json
Original file line number Diff line number Diff line change
Expand Up @@ -6594,6 +6594,46 @@
],
"dependencyDisposition": "none"
},
{
"id": "GT-529",
"closedAt": "2026-07-13",
"closureCommit": "856d2b56",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use closure commits reachable from this change

Because this reviewed commit is a squash on top of 85595fd, the connector work is introduced by 4856f26 itself; git merge-base --is-ancestor 856d2b56 4856f26 returns false, as do the analogous checks for the GT-530/GT-527 commits below. In a checkout containing only this reviewed history, these new DONE records point to side-branch objects rather than the release commit, so the canonical closure registry loses reproducible traceability once those worktree branches are pruned. Record 4856f26 (or another commit that is actually reachable from the merged history) for these closures.

Useful? React with 👍 / 👎.

"evidence": ["src/packages/infra-providers/src/jira-work-system.adapter.ts", "src/packages/core-domain/src/domain/external-work-acl.ts"],
"validationCommands": ["cd src/packages/infra-providers && npx jest --runInBand jira-work-system (green)", "infra-providers 78/78"],
"dependencyDisposition": "none"
},
{
"id": "GT-530",
"closedAt": "2026-07-13",
"closureCommit": "959538d6",
"evidence": ["src/packages/infra-providers/src/langfuse-evidence.adapter.ts", "src/packages/core-domain/src/domain/observability-evidence.ts"],
"validationCommands": ["cd src/packages/infra-providers && npx jest --runInBand langfuse-evidence (green)", "infra-providers 78/78"],
"dependencyDisposition": "none"
},
{
"id": "GT-527",
"closedAt": "2026-07-13",
"closureCommit": "702915bb",
"evidence": ["src/packages/infra-providers/src/idp-blueprint.adapter.ts", "src/packages/infra-providers/src/backstage-catalog.loader.ts", "src/packages/core-domain/src/domain/ownership.ts"],
"validationCommands": ["cd src/packages/infra-providers && npx jest --runInBand idp-blueprint (green)", "infra-providers 78/78"],
"dependencyDisposition": "none"
},
{
"id": "GT-477",
"closedAt": "2026-07-13",
"closureCommit": "56968194",
"evidence": [".github/workflows/docs.yml", ".harness/scripts/ci/08-validate-tracking.mjs"],
"validationCommands": ["guard validates parseProgress on PR/push (GT-476)"],
"dependencyDisposition": "none"
},
{
"id": "GT-480",
"closedAt": "2026-07-13",
"closureCommit": "85595fd6",
"evidence": ["reference/core/control-center/gaps/gap-tracking.es.md"],
"validationCommands": ["0 HECHO tokens; guard STATUS_MAP green"],
"dependencyDisposition": "none"
},
{
"id": "GT-476",
"closedAt": "2026-07-12",
Expand Down
20 changes: 10 additions & 10 deletions reference/core/control-center/gaps/gap-reference-catalog.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -310,10 +310,10 @@ Este catálogo explica cada gap: problema, propósito, evidencia, criterios de c
- **Criticality:** P2 · **Complexity:** L
- **Proposed fix:** Conectores read-only vía ACL (Port/Cortex/OpsLevel API + `catalog-info.yaml` de Backstage) que normalizan a un modelo canónico de ownership consumido por el enriquecimiento de evidencia.
- **Acceptance criteria:**
- [ ] Al menos un conector (p. ej. Backstage) resuelve owner y lo enchufa al enriquecimiento de violaciones. _(núcleo hecho: `parseBackstageCatalog` + `resolveOwner` + `enrichViolationsWithOwner`; falta leer el `catalog-info.yaml` del repo vía el port de config-parser —conector/infra)_
- [x] Al menos un conector (p. ej. Backstage) resuelve owner y lo enchufa al enriquecimiento de violaciones. _(loader Backstage `loadBackstageOwnership` + `fetchBlueprintOwnership` Port/Cortex sobre los parsers puros; cliente inyectable)_
- [x] Los conectores son read-only y no introducen lock-in de proveedor. _(los parsers solo leen y normalizan; nada escribe ni acopla al proveedor)_
- **Dependencies:** GT-511.
- **Status:** `IN-PROGRESS`
- **Status:** `COMPLETED`

#### GT-528

Expand Down Expand Up @@ -350,7 +350,7 @@ Este catálogo explica cada gap: problema, propósito, evidencia, criterios de c
- [x] Elementos de Jira se mapean a artefactos Evolith preservando origen/identidad/timestamps/linaje. _(`parseJiraIssue`→`CanonicalWorkItem` con `WorkItemProvenance`; rechaza sin id)_
- [x] Completar un workflow de Jira no autoriza por sí solo una transición de fase. _(`authorizesPhaseTransition:false` por contrato + `externalWorkAuthorizesTransition`⇒false)_
- **Dependencies:** none.
- **Status:** `IN-PROGRESS`
- **Status:** `COMPLETED`

#### GT-530

Expand All @@ -368,7 +368,7 @@ Este catálogo explica cada gap: problema, propósito, evidencia, criterios de c
- [x] Un trace/evaluación de Langfuse se mapea a evidencia canónica consumible por un gate. _(`mapLangfuseTrace`→`ObservabilityEvidence` con costo/latencia/tokens/prompt/tool-calls/scores)_
- [x] El adaptador está aislado tras un puerto (proveedor de observabilidad reemplazable). _(`IObservabilityEvidenceSource`; la forma es provider-neutral)_
- **Dependencies:** GT-511.
- **Status:** `IN-PROGRESS`
- **Status:** `COMPLETED`

#### GT-531

Expand Down Expand Up @@ -873,9 +873,9 @@ Este catálogo explica cada gap: problema, propósito, evidencia, criterios de c

**Fix propuesto:** Los contadores se corrigieron a `450 / 484 · 7 · 26 · 1` durante el registro de GT-475…GT-484; el fix sistémico es re-apuntar + re-armar `08-validate-tracking.mjs` (GT-476) en push/PR para que no vuelvan a derivar silenciosamente.

**Cierre:**
- [ ] líneas Progress/Progreso coinciden con un conteo por fila scripteado
- [ ] el guard reconcilia los contadores en push/PR (depende de GT-476)
**Cierre:** COMPLETADO
- [x] líneas Progress/Progreso coinciden con un conteo por fila scripteado
- [x] el guard reconcilia los contadores en push/PR (depende de GT-476)

**Referencias:** `reference/core/control-center/gaps/gap-tracking.md:492`; GT-476, GT-417

Expand Down Expand Up @@ -923,9 +923,9 @@ Este catálogo explica cada gap: problema, propósito, evidencia, criterios de c

**Fix propuesto:** Normalizar las 13 filas `HECHO` de vuelta a `COMPLETADO` (preferido, preserva la convención de GT-417), o añadir un alias `HECHO → done` al `STATUS_MAP` (una edición de `.harness`, hecha directamente en este repo — ver GT-476).

**Cierre:**
- [ ] no quedan tokens de estado `HECHO` en `gap-tracking.es.md`
- [ ] el guard acepta todo estado ES de done (tras GT-476)
**Cierre:** COMPLETADO
- [x] no quedan tokens de estado `HECHO` en `gap-tracking.es.md`
- [x] el guard acepta todo estado ES de done (tras GT-476)

**Referencias:** `reference/core/control-center/gaps/gap-tracking.es.md`; `.harness/scripts/ci/08-validate-tracking.mjs:16-30`; GT-417, GT-476

Expand Down
20 changes: 10 additions & 10 deletions reference/core/control-center/gaps/gap-reference-catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -310,10 +310,10 @@ This catalog explains each gap: problem, purpose, evidence, closure criteria, an
- **Criticality:** P2 · **Complexity:** L
- **Proposed fix:** Read-only connectors via ACL (Port/Cortex/OpsLevel API + Backstage `catalog-info.yaml`) normalizing to a canonical ownership model consumed by evidence enrichment.
- **Acceptance criteria:**
- [ ] At least one connector (e.g. Backstage) resolves owner and feeds violation enrichment. _(core done: `parseBackstageCatalog` + `resolveOwner` + `enrichViolationsWithOwner`; reading the repo's `catalog-info.yaml` via the config-parser port is the remaining connector/infra step)_
- [x] At least one connector (e.g. Backstage) resolves owner and feeds violation enrichment. _(Backstage `loadBackstageOwnership` + `fetchBlueprintOwnership` Port/Cortex over the pure parsers; injected client)_
- [x] Connectors are read-only and introduce no vendor lock-in. _(the parsers only read and normalize; nothing writes or couples to a vendor)_
- **Dependencies:** GT-511.
- **Status:** `IN-PROGRESS`
- **Status:** `COMPLETED`

#### GT-528

Expand Down Expand Up @@ -350,7 +350,7 @@ This catalog explains each gap: problem, purpose, evidence, closure criteria, an
- [x] Jira items map to Evolith artifacts preserving origin/identity/timestamps/lineage. _(`parseJiraIssue`→`CanonicalWorkItem` with `WorkItemProvenance`; rejects a missing id)_
- [x] Completing a Jira workflow does not by itself authorize a phase transition. _(`authorizesPhaseTransition:false` by contract + `externalWorkAuthorizesTransition`⇒false)_
- **Dependencies:** none.
- **Status:** `IN-PROGRESS`
- **Status:** `COMPLETED`

#### GT-530

Expand All @@ -368,7 +368,7 @@ This catalog explains each gap: problem, purpose, evidence, closure criteria, an
- [x] A Langfuse trace/evaluation maps to canonical evidence consumable by a gate. _(`mapLangfuseTrace`→`ObservabilityEvidence` with cost/latency/tokens/prompt/tool-calls/scores)_
- [x] The adapter is isolated behind a port (replaceable observability provider). _(`IObservabilityEvidenceSource`; the shape is provider-neutral)_
- **Dependencies:** GT-511.
- **Status:** `IN-PROGRESS`
- **Status:** `COMPLETED`

#### GT-531

Expand Down Expand Up @@ -873,9 +873,9 @@ This catalog explains each gap: problem, purpose, evidence, closure criteria, an

**Proposed fix:** Counters were corrected to `450 / 484 · 7 · 26 · 1` during the GT-475…GT-484 registration; the systemic fix is to re-point + re-arm `08-validate-tracking.mjs` (GT-476) on push/PR so the counters cannot silently drift again.

**Closure:**
- [ ] Progress/Progreso lines match a scripted per-row tally
- [ ] guard reconciles the counters on push/PR (depends on GT-476)
**Closure:** DONE
- [x] Progress/Progreso lines match a scripted per-row tally
- [x] guard reconciles the counters on push/PR (depends on GT-476)

**References:** `reference/core/control-center/gaps/gap-tracking.md:492`; GT-476, GT-417

Expand Down Expand Up @@ -923,9 +923,9 @@ This catalog explains each gap: problem, purpose, evidence, closure criteria, an

**Proposed fix:** Normalize the 13 `HECHO` rows back to `COMPLETADO` (preferred, preserves the GT-417 convention), or add a `HECHO → done` alias to `STATUS_MAP` (a `.harness` edit, done directly in this repo — see GT-476).

**Closure:**
- [ ] no `HECHO` status tokens remain in `gap-tracking.es.md`
- [ ] guard accepts every ES done-status (after GT-476)
**Closure:** DONE
- [x] no `HECHO` status tokens remain in `gap-tracking.es.md`
- [x] guard accepts every ES done-status (after GT-476)

**References:** `reference/core/control-center/gaps/gap-tracking.es.md`; `.harness/scripts/ci/08-validate-tracking.mjs:16-30`; GT-417, GT-476

Expand Down
Loading