This directory contains one LikeC4 project for the repositories checked out beside it. The model has one canonical owner for every element; diagram projections live in views/.
https://nicow-elia.github.io/powsybl-architecture/
model/as-is/andviews/as-is/document only what exists on the upstream main branches: powsybl-corepowsybl/powsybl-coremain, pypowsyblpowsybl/pypowsyblmain and powsybl-open-loadflowpowsybl/powsybl-open-loadflowmain. Their FQNs identify real code or documented public contracts there. Code that exists only on a branch - a local branch of this machine (the diffstacking work onfeat/vibestacker, the family rework onfeat/diffstacking-unified-mapping) or an unmerged upstream pull-request branch - is a proposal, however complete it is. An as-is view shows no proposal element (the as-is views thatinclude *exclude every proposal root). The audit that applied this rule, element by element, is in architecture-evidence.md, "Upstream audit ofmodel/as-is/".model/proposals/andviews/proposals/describe target architecture and code that exists only on a branch. Proposal elements useproposed_*or a proposal-specific root such asproposal_a_*orrdfdb_integration_*; they must not extend a factual FQN. Branch code moved out of the as-is tree keeps its internal structure under such a root (for exampleproposed_diffstacking.cgmes_rdfdb.*for the modulecgmes-rdfdbof the diffstacking branch, which the model registry proposal moves to a repository of its own).- Each proposal has its own folder in both trees:
model/proposals/<proposal>/(elements and aREADME.mdsaying what it proposes, its status, view ids and evidence) andviews/proposals/<proposal>/(its views). PROPOSALS.md lists all proposals; exported PNGs of their views are underexports/proposals/<proposal>/(see exports/README.md). - Proposal relationships may point to factual FQNs using intent labels such as
would consume as-is,would extend,would extract into, orwould expose support for. This shows reuse without claiming that the target capability already exists.would extendmarks an upstream element the branch changes (for exampleCgmesImportdelegating difference models),would consume as-isone it uses unchanged. model/00-specification.c4is shared LikeC4 vocabulary rather than factual or target architecture. Its element kinds arerepository, module, api, provider, engine, adapter, model, component, binding, library, format, database;databasenames an external data store that Powsybl talks to over a wire protocol rather than a piece of Powsybl itself.
The source evidence for the as-is elements (the upstream audit), for the factual State Estimation building blocks and the absence of an estimator, and the branch evidence of the proposals is recorded in architecture-evidence.md.
Every factual element with a public reference carries an external link in its
LikeC4 declaration:
- Named Java classes, interfaces, providers, and APIs link to their published Javadoc pages.
- Intentional architecture aggregates link to the closest Powsybl ReadTheDocs page that describes the represented capability or concept.
- Implementation-only bridge, mapper, and ABI details remain unlinked when no specific public Javadoc or ReadTheDocs page exists. This avoids presenting a broad or unrelated page as authoritative documentation.
The included launcher uses the pinned LikeC4 Docker image, so it does not add a Node.js dependency to any of the repositories. From this directory, run:
./serve_architecture_diagrams.shWith Node.js and npm available, the same server can instead be started directly:
npx likec4 start