Check a hand-written architecture model against the map, with evidence and without verdicts
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start with the proposed dircue map check-model --model likec4.json map.json entry point and compare its intended JSON and Markdown output with map compare. Read the shared element-mapping dependency in issue #152 and the runtime-relationship limitation in #103. Done means deterministic, evidence-backed model and map comparisons with neutral wording, unknown kept distinct from absent, and no policy or severity verdicts.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
User outcome
A team that keeps a hand-written architecture model can ask dircue which parts of that model the repository's declarations support, and which declared parts the model doesn't mention. Both answers come as facts with evidence, deterministically, without an AI step:
dircue map check-model --model likec4.json map.json
Why
- Hand-written models (C4 via LikeC4 or Structurizr, Backstage catalogs) drift. Tools are appearing to detect that drift, but they use models to judge code changes and emit severity-ranked findings. erode, for example, reads a LikeC4/Structurizr model and uses AI to analyze pull requests.
- A deterministic, evidence-first check is the missing complement. It doesn't judge whether a dependency is allowed. It reports, per element and relationship, whether the map observed it and where, and it reports what the map observed that the model lacks.
Proposal
- Inputs:
- a saved map;
- a model the team exported with its own tool. Start with LikeC4's
likec4 export json, then Structurizr workspace JSON and Backstage entities. dircue reads these files; it never runs the modeling tool. - an explicit, user-written mapping from model element IDs to map selectors (paths, component names, deployable IDs), with a conservative default matcher (exact names and paths only).
- Output (JSON and Markdown, like
map compare):- model elements and relationships with map evidence, without map evidence, or not decidable (the relevant map question is
partialorunknown, or the relation kind isn't observed, as with runtime calls until #103); - map components, deployables and capabilities (primary role) absent from the model.
- model elements and relationships with map evidence, without map evidence, or not decidable (the relevant map question is
- Neutral wording. "Not observed in the declarations of this revision", never "violation", "risk" or a severity. Unknown is never reported as absent.
- CI use: pairs with the
map compareaction (#10) to show model-relevant changes in a pull request.
Non-goals
- No policy engine, allowed/forbidden dependency rules, or severities.
- No model repair. dircue doesn't edit the team's model; an export (https://github.com/war-and-code/dircue/issues/152) can generate a fresh one to compare.
Dependencies
- https://github.com/war-and-code/dircue/issues/152 (export), for a shared element mapping.
- #103, before runtime relationships (
connects_to) can be checked.
- Lingua principale
- Go
- Stelle
- 0
- Fork
- 0
- Merge medio
- 5h 8m
- PR unite (30g)
- 54
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di war-and-code/dircue
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
war-and-code/dircue#200 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement follow-up
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
war-and-code/dircue#201 ·
I maintainer di solito rispondono entro 1 giorno
-
follow-up
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
war-and-code/dircue#179 ·
I maintainer di solito rispondono entro 1 giorno
-
follow-up
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
war-and-code/dircue#178 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement follow-up
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
war-and-code/dircue#172 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di war-and-code/dircue
Issue simili
-
docs: namespaceRegexes example teaches prefix matching, but regexes are matched as a substringApertatriage/pending-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
external-secrets/external-secrets#7117 ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ENTERPILOT/GoModel#1183 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Edwin-metcalf/MetCode#16 ·
-
Action Required: Fix Renovate ConfigurationForse già presa @thompson-tomo l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
open-telemetry/opentelemetry-collector#16170 ·
I maintainer di solito rispondono entro 1 giorno
-
Buffer.writeRTX drops the RTCP returned by calc, so NACKs for other lost packets are never sentAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno