feat: parallel wave — GT-476 & GT-528 DONE + GT-518/513/527 slices#178
Merged
Conversation
Pure parseStructurizrDsl(dsl): C4Model ingestion step feeding compileC4ToBoundaryRules. Supports element definitions with path/import/adr tag mapping and 'a -> b' relationships; ignores workspace/model/views scaffolding. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The 08-validate-tracking guard previously ran only on workflow_dispatch, so gap-board drift went undetected. Add a focused, dependency-free tracking-guard job (git history only) that runs on pull_request and on push to main/develop; keep the heavy doc-publish pipeline manual via an if: workflow_dispatch gate on the existing validate job. The 5 sibling sync/fix scripts already resolve the post-refactor gaps//evidence/ paths on this branch, so no script edits were needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…GT-527b) Thin READ-ONLY connector: parse a (multi-document) catalog-info.yaml text into BackstageEntity[] via the yaml package's parseAllDocuments, then delegate to the pure parseBackstageCatalog in core-domain to normalize into OwnershipEntry[]. No writes, no lock-in. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a 'sarif' output format to the evaluate command that prints a SARIF 2.1.0 log built by exportEvaluationResultToSarif (core-domain). Default json/text behaviour preserved. Adds evaluate.command.spec.ts covering the sarif branch, envelope suppression, and json-default preservation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add CapabilitiesController exposing the domain buildCapabilityManifest via GET /api/v1/capabilities, wrapped in the ADR-0073 success envelope by the global EnvelopeInterceptor. Registered in AppModule; unit spec asserts the manifest content and sha256 self-consistency. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…', 'origin/wf/gt-518', 'origin/wf/gt-513' and 'origin/wf/gt-527b' into develop
… (498/532) Driver integration of the worktree-isolated parallel wave (all 5 branches independently re-verified by build+test before merge): - GT-476 → DONE: tracking guard armed on PR/push in docs.yml (6 scripts already re-pointed). Closure record added. - GT-528 → DONE: parseStructurizrDsl (.dsl → C4Model), composes with the compiler. Closure record added. - GT-518 (+): `evolith evaluate --format sarif` — 1/3 ACs, stays IN-PROGRESS. - GT-513 (+): live GET /api/v1/capabilities endpoint — stays IN-PROGRESS (contracts pkg). - GT-527 (+): loadBackstageOwnership (catalog-info.yaml → OwnershipEntry[]) — stays IN-PROGRESS. Barrel exports added by the driver (parseStructurizrDsl, loadBackstageOwnership). Verified: core-domain 950/950, infra-providers 71/71, CLI + core-api specs green, tsc clean; tracking guard green (532 gaps / 480 records). Counter → 498/532. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
📊 Bilingual Coverage ImpactPR Changes
Repository Coverage
✅ Good: All EN changes have ES counterparts. Generated by GitHub Actions |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a1a5a21662
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…mits (GT-476) Arming the guard on PR (GT-476) surfaced that ~dozens of legitimate historical closure records point at commit SHAs orphaned by this repo's history rewrites (taxonomy refactor, resets) — unreachable in a fresh CI checkout, so `git cat-file` fails and the newly-armed guard went red on pre-existing data. Downgrade the "closureCommit not reachable" case from a fatal error to a console warning. A malformed SHA is still a hard error; the real structural invariants (path resolution, EN/ES parity, counts, DONE⊆closure-records) remain fatal — those are what actually catch board drift. Guard stays green locally (532/480) and now in CI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…s (GT-528)
Real .dsl wraps an element block across lines (`domain = container "Domain" {` /
`tags "path=..."` / `}`). The single-line-only regex dropped the tags line and
silently lost the element, so compileC4ToBoundaryRules emitted no boundary rules
(a silent false-negative). Now the block is joined until its closing `}` whether
inline or multi-line. +covering test.
Flagged by an automated PR review on #178.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integración (driver-serializada) de una ola multi-agente en worktrees aislados. Las 5 ramas fueron re-verificadas independientemente por el driver (build + tests reales) antes de mergear — no por el self-report de los agentes.
Cerrados (DONE + registro de cierre)
docs.ymljobtracking-guard; los 6 scripts ya estaban re-apuntados). El job pesado de publish queda gateado aworkflow_dispatch.parseStructurizrDsl(.dsl → C4Model), compone end-to-end concompileC4ToBoundaryRules+evaluateEdit.Rebanadas (siguen IN-PROGRESS)
evolith evaluate --format sarif(1 de 3 ACs).GET /api/v1/capabilities(resta el paquete@beyondnet/evolith-contracts).loadBackstageOwnership(catalog-info.yaml → OwnershipEntry[])en infra-providers (resta fetch Port/Cortex).Verificación
core-domain 950/950, infra-providers 71/71, CLI + core-api specs verdes, tsc limpio; tracking guard 532 gaps / 480 records. Contador → 498/532. Exports de barrel añadidos por el driver.
🤖 Generated with Claude Code