archi-cli 0.2.1__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ # Archi-backups en afgeleide artefacten
2
+ *.bak
3
+ output/
4
+ *.xml
5
+ *.svg
6
+ *.png
7
+ # behalve de schermafbeeldingen voor de README
8
+ !docs/img/*.png
9
+
10
+ # Python
11
+ __pycache__/
12
+ *.py[cod]
13
+ .venv/
14
+ .pytest_cache/
15
+ .ruff_cache/
16
+ dist/
17
+
18
+ # macOS
19
+ .DS_Store
archi_cli-0.3.0/NOTICE ADDED
@@ -0,0 +1,24 @@
1
+ archi-cli
2
+ Copyright (c) 2026 Nederlandse Digitale Dienst
3
+ Licensed under the EUPL-1.2 (see LICENSE).
4
+
5
+ This tool downloads and drives the Archi engine for its `normalize` command.
6
+ Archi is a separate work and is not distributed as part of this package; it is
7
+ fetched at runtime from the official release on first use.
8
+
9
+ Archi, the ArchiMate modelling tool
10
+ Copyright (c) Phillip Beauvoir, Jean-Baptiste Sarrodie and contributors
11
+ Licensed under the MIT License
12
+ https://github.com/archimatetool/archi
13
+
14
+ The Archi distribution bundles an OpenJDK runtime; its own licensing applies to
15
+ that runtime.
16
+
17
+ The HTML views and slide decks load the NLDD Design System
18
+ (@nldd/design-system) from a CDN at view time. Its fonts (RijksSans) are
19
+ intended for publications by and on behalf of the Dutch central government;
20
+ see the design system's NOTICES.md for the conditions.
21
+
22
+ ArchiMate is a registered trademark of The Open Group. archi-cli is an
23
+ independent project and is not affiliated with or endorsed by The Open Group
24
+ or the Archi project.
@@ -0,0 +1,228 @@
1
+ Metadata-Version: 2.5
2
+ Name: archi-cli
3
+ Version: 0.3.0
4
+ Summary: Deterministische command line tool om native Archi-modellen (.archimate) te inspecteren, muteren, valideren en renderen
5
+ Project-URL: Homepage, https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting
6
+ Project-URL: Repository, https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting
7
+ Project-URL: Issues, https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/issues
8
+ Project-URL: Changelog, https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CHANGELOG.md
9
+ Author: Nederlandse Digitale Dienst
10
+ License-Expression: EUPL-1.2
11
+ License-File: LICENSE
12
+ Keywords: archi,archimate,architecture-as-code,cli,enterprise-architecture,modeling
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Information Technology
17
+ Classifier: Natural Language :: Dutch
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Topic :: Software Development :: Documentation
24
+ Requires-Python: >=3.12
25
+ Requires-Dist: lxml>=6.1.3
26
+ Requires-Dist: typer>=0.26
27
+ Description-Content-Type: text/markdown
28
+
29
+ # archi-cli
30
+
31
+ [![checks](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/actions/workflows/ci.yml/badge.svg)](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/actions/workflows/ci.yml)
32
+ [![PyPI](https://img.shields.io/pypi/v/archi-cli.svg)](https://pypi.org/project/archi-cli/)
33
+ [![Python](https://img.shields.io/pypi/pyversions/archi-cli.svg)](https://pypi.org/project/archi-cli/)
34
+ [![licentie: EUPL-1.2](https://img.shields.io/badge/licentie-EUPL--1.2-blue.svg)](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/LICENSE)
35
+
36
+ Houd je ArchiMate-model bij zoals code. `archi-cli` is een command line tool
37
+ voor native [Archi](https://www.archimatetool.com/)-modellen: je bekijkt,
38
+ wijzigt en controleert een `.archimate`-bestand vanuit de terminal, en
39
+ genereert er views, webpagina's en presentaties uit. Elke wijziging wordt
40
+ gevalideerd voordat hij wordt opgeslagen, zodat het model nooit kapot raakt.
41
+ Dat maakt de tool geschikt om samen met een AI-assistent aan een model te
42
+ werken, met git als geheugen.
43
+
44
+ ![Een gegenereerde presentatie die inzoomt op één capability](https://raw.githubusercontent.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/main/docs/img/slide-focus.png)
45
+
46
+ *Een slide uit het meegeleverde voorbeeld: de camera zoomt in op één
47
+ element en dimt de rest. Gegenereerd uit het model, zonder handwerk.*
48
+
49
+ ## Wat het is, en wat niet
50
+
51
+ **Wel:**
52
+
53
+ - Een **command line tool** die het native Archi-formaat leest en schrijft. Het
54
+ bestand blijft gewoon te openen en te bewerken in Archi.
55
+ - Een **vangnet**. Elke mutatie wordt eerst in het geheugen gevalideerd; bij een
56
+ fout weigert de tool op te slaan. Ids blijven onveranderd.
57
+ - **Deterministisch.** Dezelfde invoer geeft dezelfde uitvoer, zodat diffs klein
58
+ blijven en je de uitvoer in CI kunt controleren.
59
+ - Een set **skills voor Claude Code** die beschrijven hoe een AI-assistent via
60
+ deze tool aan een model werkt.
61
+
62
+ **Niet:**
63
+
64
+ - **Geen vervanging van Archi.** Vrij modelleren op het canvas en de layout van
65
+ een view fijnslijpen doe je in Archi. De tool en Archi werken op hetzelfde
66
+ bestand en vullen elkaar aan.
67
+ - **Geen ArchiMate-validator.** `archi validate` controleert de integriteit van
68
+ het bestand en je eigen conventies, niet of een relatie volgens de
69
+ ArchiMate-specificatie is toegestaan.
70
+ - **Geen AI.** De tool zelf bevat geen AI en stuurt je model nergens heen. Alleen
71
+ het eenmalig ophalen van de Archi-engine gebruikt het netwerk.
72
+ - **Geen officieel product of standaard.** Het is open source software in de
73
+ bètafase, zonder garanties of ondersteuningsafspraken.
74
+
75
+ ## Snel aan de slag
76
+
77
+ Je hebt [uv](https://docs.astral.sh/uv/) nodig; uv regelt zelf een passende
78
+ Python (3.12 of nieuwer).
79
+
80
+ ```bash
81
+ uv tool install archi-cli
82
+ archi --version
83
+ ```
84
+
85
+ Probeer het op het meegeleverde voorbeeld, een fictief model van een gemeente
86
+ die vergunningen verleent:
87
+
88
+ ```bash
89
+ git clone https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting.git
90
+ cd ai-assisted-architecting/examples/vergunningverlening
91
+ archi stats # wat zit er in het model
92
+ archi show "Toetsen aan regels" # één element met zijn relaties
93
+ archi render # views en slides naar views/
94
+ ```
95
+
96
+ Open daarna `views/html/index.html` in je browser. De Mermaid-versies van de
97
+ views staan [hier op GitHub](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/examples/vergunningverlening/views/README.md) al
98
+ gerenderd.
99
+
100
+ Voor je eigen model: draai `archi` in de map met je `.archimate`-bestand, of
101
+ leg het vast in een `archi.toml` (zie [Configuratie](#configuratie)).
102
+
103
+ ## Wat je ermee kunt
104
+
105
+ | Taak | Commando's |
106
+ | --- | --- |
107
+ | Inspecteren | `stats`, `list`, `show`, `tree` |
108
+ | Wijzigen | `add-element`, `add-relation`, `set-property`, `remove-property`, `set-documentation`, `rename`, `move`, `remove`, `set-model-name` |
109
+ | Views genereren | `add-view` met grid- of clusterlayout, geselecteerd op type, property, relatie of vanuit één element |
110
+ | Controleren | `validate` |
111
+ | Normaliseren | `normalize` |
112
+ | Publiceren | `render` (views) en `slides` (presentaties) |
113
+
114
+ `archi <commando> --help` toont alle opties. Een paar voorbeelden:
115
+
116
+ ```bash
117
+ archi add-element --type Capability --name "Toezicht" --documentation "Naleving controleren."
118
+ archi add-relation --type Aggregation --source "Vergunningverlening" --target "Toezicht"
119
+ archi move "Toezicht" --subfolder "Gebied handhaving" --create-subfolder
120
+ archi add-view --name "Capabilities" --layout cluster --type Capability
121
+ archi remove "Toezicht" --cascade # ook relaties en view-objecten
122
+ ```
123
+
124
+ **Controleren.** `archi validate` vindt onder meer dubbele ids, relaties naar
125
+ elementen die niet bestaan, elementen in de verkeerde laagmap, kapotte views en
126
+ property-keys die niet in je conventielijst staan. Mutaties draaien dezelfde
127
+ controles automatisch.
128
+
129
+ **Normaliseren.** `archi normalize` laat Archi zelf het bestand opnieuw wegschrijven,
130
+ in zijn eigen canonieke vorm. Zo blijven git-diffs klein, of een wijziging nu
131
+ uit de tool of uit Archi komt. De Archi-engine haalt de tool bij het eerste
132
+ gebruik zelf op en controleert de download.
133
+
134
+ **Publiceren.** `archi render` zet elke view om naar Mermaid (dat GitHub direct
135
+ toont) en naar een webpagina met de layout en de ArchiMate-notatie uit het
136
+ model, gestileerd met het [NLDD Design System](https://github.com/NederlandseDigitaleDienst/design-system).
137
+ Een indexpagina toont alle views met een miniatuur.
138
+
139
+ ![Een gegenereerde view met de layout uit het model](https://raw.githubusercontent.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/main/docs/img/view-dienst-platform.png)
140
+
141
+ **Presenteren.** Een deck in `decks/*.toml` beschrijft een lineair verhaal met
142
+ views uit het model, afgewisseld met tekst. `archi slides` maakt er een
143
+ zelfstandige HTML-presentatie van, met zoom-op-een-element, sprekersnotities en
144
+ volledig scherm. Zie [het voorbeelddeck](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/examples/vergunningverlening/decks/rondleiding.toml).
145
+
146
+ **Doorklikken.** Met een links-bestand worden elementen in de webpagina's
147
+ klikbaar naar een andere view of een ander bestand, bijvoorbeeld een diagram
148
+ dat je met eigen scripts maakt. Zie [ADR 0010](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/adr/0010-doorklikken-via-links-bestand.md).
149
+
150
+ ![De indexpagina met alle views](https://raw.githubusercontent.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/main/docs/img/views-index.png)
151
+
152
+ ## Configuratie
153
+
154
+ De tool zoekt het model in deze volgorde: de optie `--model <pad>` (vóór het
155
+ subcommando), de sleutel `model` in een `archi.toml` (in de werkmap of een map
156
+ erboven), of het enige `.archimate`-bestand in de werkmap.
157
+
158
+ ```toml
159
+ # archi.toml
160
+ [tool.archi]
161
+ model = "model/architectuur.archimate"
162
+ conventions = "docs/conventies.md" # toegestane property-keys
163
+ links = "links.toml" # doorkliks in de webpagina's
164
+ fonts = "system" # of "rijkssans", zie hieronder
165
+ ```
166
+
167
+ Alle sleutels zijn optioneel. Dezelfde tabel mag ook in een `pyproject.toml`.
168
+
169
+ **Lettertype.** De webpagina's gebruiken standaard het systeemlettertype.
170
+ RijksSans is uitsluitend bedoeld voor publicaties van de Rijksoverheid en
171
+ partijen die in haar opdracht werken; valt jouw publicatie daaronder, zet dan
172
+ `fonts = "rijkssans"`.
173
+
174
+ ## Werken met een AI-assistent
175
+
176
+ De skills `archi-model`, `archi-view` en `archi-slides` leren een AI-assistent
177
+ hoe hij via deze tool aan een model werkt: welke commando's, in welke
178
+ volgorde, en wanneer hij moet valideren en normaliseren. Installeer ze in
179
+ Claude Code als plugin:
180
+
181
+ ```
182
+ /plugin marketplace add BureauArchitectuurDigitaleOverheid/ai-assisted-architecting
183
+ /plugin install archi-tools@archi-marketplace
184
+ ```
185
+
186
+ De plugin brengt alleen de skills mee; het commando `archi` installeer je met
187
+ uv, zoals hierboven. De tool garandeert dat het model technisch klopt, niet dat
188
+ de architectuur klopt. Lees wijzigingen van een assistent na zoals je een pull
189
+ request van een collega naleest.
190
+
191
+ ## Grenzen en bekende beperkingen
192
+
193
+ - **Alleen het native Archi-formaat** (`.archimate`). Het Open Group
194
+ Exchange-formaat wordt niet gelezen of geschreven.
195
+ - **`normalize` heeft de Archi-engine nodig** (ongeveer 165 MB, eenmalig).
196
+ Archi levert die voor macOS (Intel en Apple Silicon) en voor 64-bit x86 op
197
+ Linux en Windows. Op andere platforms installeer je Archi zelf en wijs je hem
198
+ aan met de omgevingsvariabele `ARCHI_APP`. Alle andere commando's werken
199
+ zonder Archi.
200
+ - **Automatische layout is een startpunt.** `add-view` plaatst elementen in een
201
+ raster of in clusters; bij grotere views schuif je in Archi nog wat bij.
202
+ - **Niet alles wordt gerenderd.** Sketch- en canvasviews, afbeeldingen en eigen
203
+ kleuren en lettertypes uit Archi komen niet in de webpagina's.
204
+ - **De webpagina's laden het design system van een CDN** en hebben dus internet
205
+ nodig om goed te tonen.
206
+ - **Uitvoer en meldingen zijn Nederlandstalig.**
207
+
208
+ ## Disclaimer
209
+
210
+ Deze software wordt geleverd zoals hij is, zonder enige garantie; zie de
211
+ artikelen 7 en 8 van de [EUPL-1.2](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/LICENSE). De tool is in bètafase: tot versie
212
+ 1.0 kunnen commando's en uitvoer nog veranderen. Elke wijziging die je moet
213
+ weten staat in de [changelog](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CHANGELOG.md).
214
+
215
+ ArchiMate is een geregistreerd handelsmerk van The Open Group. Dit project is
216
+ onafhankelijk en niet verbonden aan The Open Group of het Archi-project.
217
+
218
+ ## Meedoen
219
+
220
+ Bijdragen zijn welkom: lees [CONTRIBUTING.md](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CONTRIBUTING.md) voor de
221
+ werkwijze en de [gedragscode](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CODE_OF_CONDUCT.md). Een beveiligingsprobleem meld
222
+ je volgens [SECURITY.md](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/SECURITY.md), niet in een openbaar issue.
223
+ Beslissingen over de opzet van de tool staan als ADR's in [`adr/`](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/tree/main/adr/).
224
+
225
+ ## Licentie
226
+
227
+ [EUPL-1.2](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/LICENSE). Ontwikkeld door de Nederlandse Digitale Dienst. Archi
228
+ zelf valt onder de MIT-licentie; zie [NOTICE](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/NOTICE).
@@ -0,0 +1,200 @@
1
+ # archi-cli
2
+
3
+ [![checks](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/actions/workflows/ci.yml/badge.svg)](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/actions/workflows/ci.yml)
4
+ [![PyPI](https://img.shields.io/pypi/v/archi-cli.svg)](https://pypi.org/project/archi-cli/)
5
+ [![Python](https://img.shields.io/pypi/pyversions/archi-cli.svg)](https://pypi.org/project/archi-cli/)
6
+ [![licentie: EUPL-1.2](https://img.shields.io/badge/licentie-EUPL--1.2-blue.svg)](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/LICENSE)
7
+
8
+ Houd je ArchiMate-model bij zoals code. `archi-cli` is een command line tool
9
+ voor native [Archi](https://www.archimatetool.com/)-modellen: je bekijkt,
10
+ wijzigt en controleert een `.archimate`-bestand vanuit de terminal, en
11
+ genereert er views, webpagina's en presentaties uit. Elke wijziging wordt
12
+ gevalideerd voordat hij wordt opgeslagen, zodat het model nooit kapot raakt.
13
+ Dat maakt de tool geschikt om samen met een AI-assistent aan een model te
14
+ werken, met git als geheugen.
15
+
16
+ ![Een gegenereerde presentatie die inzoomt op één capability](https://raw.githubusercontent.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/main/docs/img/slide-focus.png)
17
+
18
+ *Een slide uit het meegeleverde voorbeeld: de camera zoomt in op één
19
+ element en dimt de rest. Gegenereerd uit het model, zonder handwerk.*
20
+
21
+ ## Wat het is, en wat niet
22
+
23
+ **Wel:**
24
+
25
+ - Een **command line tool** die het native Archi-formaat leest en schrijft. Het
26
+ bestand blijft gewoon te openen en te bewerken in Archi.
27
+ - Een **vangnet**. Elke mutatie wordt eerst in het geheugen gevalideerd; bij een
28
+ fout weigert de tool op te slaan. Ids blijven onveranderd.
29
+ - **Deterministisch.** Dezelfde invoer geeft dezelfde uitvoer, zodat diffs klein
30
+ blijven en je de uitvoer in CI kunt controleren.
31
+ - Een set **skills voor Claude Code** die beschrijven hoe een AI-assistent via
32
+ deze tool aan een model werkt.
33
+
34
+ **Niet:**
35
+
36
+ - **Geen vervanging van Archi.** Vrij modelleren op het canvas en de layout van
37
+ een view fijnslijpen doe je in Archi. De tool en Archi werken op hetzelfde
38
+ bestand en vullen elkaar aan.
39
+ - **Geen ArchiMate-validator.** `archi validate` controleert de integriteit van
40
+ het bestand en je eigen conventies, niet of een relatie volgens de
41
+ ArchiMate-specificatie is toegestaan.
42
+ - **Geen AI.** De tool zelf bevat geen AI en stuurt je model nergens heen. Alleen
43
+ het eenmalig ophalen van de Archi-engine gebruikt het netwerk.
44
+ - **Geen officieel product of standaard.** Het is open source software in de
45
+ bètafase, zonder garanties of ondersteuningsafspraken.
46
+
47
+ ## Snel aan de slag
48
+
49
+ Je hebt [uv](https://docs.astral.sh/uv/) nodig; uv regelt zelf een passende
50
+ Python (3.12 of nieuwer).
51
+
52
+ ```bash
53
+ uv tool install archi-cli
54
+ archi --version
55
+ ```
56
+
57
+ Probeer het op het meegeleverde voorbeeld, een fictief model van een gemeente
58
+ die vergunningen verleent:
59
+
60
+ ```bash
61
+ git clone https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting.git
62
+ cd ai-assisted-architecting/examples/vergunningverlening
63
+ archi stats # wat zit er in het model
64
+ archi show "Toetsen aan regels" # één element met zijn relaties
65
+ archi render # views en slides naar views/
66
+ ```
67
+
68
+ Open daarna `views/html/index.html` in je browser. De Mermaid-versies van de
69
+ views staan [hier op GitHub](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/examples/vergunningverlening/views/README.md) al
70
+ gerenderd.
71
+
72
+ Voor je eigen model: draai `archi` in de map met je `.archimate`-bestand, of
73
+ leg het vast in een `archi.toml` (zie [Configuratie](#configuratie)).
74
+
75
+ ## Wat je ermee kunt
76
+
77
+ | Taak | Commando's |
78
+ | --- | --- |
79
+ | Inspecteren | `stats`, `list`, `show`, `tree` |
80
+ | Wijzigen | `add-element`, `add-relation`, `set-property`, `remove-property`, `set-documentation`, `rename`, `move`, `remove`, `set-model-name` |
81
+ | Views genereren | `add-view` met grid- of clusterlayout, geselecteerd op type, property, relatie of vanuit één element |
82
+ | Controleren | `validate` |
83
+ | Normaliseren | `normalize` |
84
+ | Publiceren | `render` (views) en `slides` (presentaties) |
85
+
86
+ `archi <commando> --help` toont alle opties. Een paar voorbeelden:
87
+
88
+ ```bash
89
+ archi add-element --type Capability --name "Toezicht" --documentation "Naleving controleren."
90
+ archi add-relation --type Aggregation --source "Vergunningverlening" --target "Toezicht"
91
+ archi move "Toezicht" --subfolder "Gebied handhaving" --create-subfolder
92
+ archi add-view --name "Capabilities" --layout cluster --type Capability
93
+ archi remove "Toezicht" --cascade # ook relaties en view-objecten
94
+ ```
95
+
96
+ **Controleren.** `archi validate` vindt onder meer dubbele ids, relaties naar
97
+ elementen die niet bestaan, elementen in de verkeerde laagmap, kapotte views en
98
+ property-keys die niet in je conventielijst staan. Mutaties draaien dezelfde
99
+ controles automatisch.
100
+
101
+ **Normaliseren.** `archi normalize` laat Archi zelf het bestand opnieuw wegschrijven,
102
+ in zijn eigen canonieke vorm. Zo blijven git-diffs klein, of een wijziging nu
103
+ uit de tool of uit Archi komt. De Archi-engine haalt de tool bij het eerste
104
+ gebruik zelf op en controleert de download.
105
+
106
+ **Publiceren.** `archi render` zet elke view om naar Mermaid (dat GitHub direct
107
+ toont) en naar een webpagina met de layout en de ArchiMate-notatie uit het
108
+ model, gestileerd met het [NLDD Design System](https://github.com/NederlandseDigitaleDienst/design-system).
109
+ Een indexpagina toont alle views met een miniatuur.
110
+
111
+ ![Een gegenereerde view met de layout uit het model](https://raw.githubusercontent.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/main/docs/img/view-dienst-platform.png)
112
+
113
+ **Presenteren.** Een deck in `decks/*.toml` beschrijft een lineair verhaal met
114
+ views uit het model, afgewisseld met tekst. `archi slides` maakt er een
115
+ zelfstandige HTML-presentatie van, met zoom-op-een-element, sprekersnotities en
116
+ volledig scherm. Zie [het voorbeelddeck](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/examples/vergunningverlening/decks/rondleiding.toml).
117
+
118
+ **Doorklikken.** Met een links-bestand worden elementen in de webpagina's
119
+ klikbaar naar een andere view of een ander bestand, bijvoorbeeld een diagram
120
+ dat je met eigen scripts maakt. Zie [ADR 0010](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/adr/0010-doorklikken-via-links-bestand.md).
121
+
122
+ ![De indexpagina met alle views](https://raw.githubusercontent.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/main/docs/img/views-index.png)
123
+
124
+ ## Configuratie
125
+
126
+ De tool zoekt het model in deze volgorde: de optie `--model <pad>` (vóór het
127
+ subcommando), de sleutel `model` in een `archi.toml` (in de werkmap of een map
128
+ erboven), of het enige `.archimate`-bestand in de werkmap.
129
+
130
+ ```toml
131
+ # archi.toml
132
+ [tool.archi]
133
+ model = "model/architectuur.archimate"
134
+ conventions = "docs/conventies.md" # toegestane property-keys
135
+ links = "links.toml" # doorkliks in de webpagina's
136
+ fonts = "system" # of "rijkssans", zie hieronder
137
+ ```
138
+
139
+ Alle sleutels zijn optioneel. Dezelfde tabel mag ook in een `pyproject.toml`.
140
+
141
+ **Lettertype.** De webpagina's gebruiken standaard het systeemlettertype.
142
+ RijksSans is uitsluitend bedoeld voor publicaties van de Rijksoverheid en
143
+ partijen die in haar opdracht werken; valt jouw publicatie daaronder, zet dan
144
+ `fonts = "rijkssans"`.
145
+
146
+ ## Werken met een AI-assistent
147
+
148
+ De skills `archi-model`, `archi-view` en `archi-slides` leren een AI-assistent
149
+ hoe hij via deze tool aan een model werkt: welke commando's, in welke
150
+ volgorde, en wanneer hij moet valideren en normaliseren. Installeer ze in
151
+ Claude Code als plugin:
152
+
153
+ ```
154
+ /plugin marketplace add BureauArchitectuurDigitaleOverheid/ai-assisted-architecting
155
+ /plugin install archi-tools@archi-marketplace
156
+ ```
157
+
158
+ De plugin brengt alleen de skills mee; het commando `archi` installeer je met
159
+ uv, zoals hierboven. De tool garandeert dat het model technisch klopt, niet dat
160
+ de architectuur klopt. Lees wijzigingen van een assistent na zoals je een pull
161
+ request van een collega naleest.
162
+
163
+ ## Grenzen en bekende beperkingen
164
+
165
+ - **Alleen het native Archi-formaat** (`.archimate`). Het Open Group
166
+ Exchange-formaat wordt niet gelezen of geschreven.
167
+ - **`normalize` heeft de Archi-engine nodig** (ongeveer 165 MB, eenmalig).
168
+ Archi levert die voor macOS (Intel en Apple Silicon) en voor 64-bit x86 op
169
+ Linux en Windows. Op andere platforms installeer je Archi zelf en wijs je hem
170
+ aan met de omgevingsvariabele `ARCHI_APP`. Alle andere commando's werken
171
+ zonder Archi.
172
+ - **Automatische layout is een startpunt.** `add-view` plaatst elementen in een
173
+ raster of in clusters; bij grotere views schuif je in Archi nog wat bij.
174
+ - **Niet alles wordt gerenderd.** Sketch- en canvasviews, afbeeldingen en eigen
175
+ kleuren en lettertypes uit Archi komen niet in de webpagina's.
176
+ - **De webpagina's laden het design system van een CDN** en hebben dus internet
177
+ nodig om goed te tonen.
178
+ - **Uitvoer en meldingen zijn Nederlandstalig.**
179
+
180
+ ## Disclaimer
181
+
182
+ Deze software wordt geleverd zoals hij is, zonder enige garantie; zie de
183
+ artikelen 7 en 8 van de [EUPL-1.2](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/LICENSE). De tool is in bètafase: tot versie
184
+ 1.0 kunnen commando's en uitvoer nog veranderen. Elke wijziging die je moet
185
+ weten staat in de [changelog](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CHANGELOG.md).
186
+
187
+ ArchiMate is een geregistreerd handelsmerk van The Open Group. Dit project is
188
+ onafhankelijk en niet verbonden aan The Open Group of het Archi-project.
189
+
190
+ ## Meedoen
191
+
192
+ Bijdragen zijn welkom: lees [CONTRIBUTING.md](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CONTRIBUTING.md) voor de
193
+ werkwijze en de [gedragscode](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CODE_OF_CONDUCT.md). Een beveiligingsprobleem meld
194
+ je volgens [SECURITY.md](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/SECURITY.md), niet in een openbaar issue.
195
+ Beslissingen over de opzet van de tool staan als ADR's in [`adr/`](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/tree/main/adr/).
196
+
197
+ ## Licentie
198
+
199
+ [EUPL-1.2](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/LICENSE). Ontwikkeld door de Nederlandse Digitale Dienst. Archi
200
+ zelf valt onder de MIT-licentie; zie [NOTICE](https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/NOTICE).
@@ -1,22 +1,27 @@
1
1
  [project]
2
2
  name = "archi-cli"
3
- version = "0.2.1"
4
- description = "ar·cli·mate — de CLI in je ArchiMate: deterministisch native .archimate-modellen inspecteren, muteren, valideren en renderen"
3
+ version = "0.3.0"
4
+ description = "Deterministische command line tool om native Archi-modellen (.archimate) te inspecteren, muteren, valideren en renderen"
5
5
  readme = "README.md"
6
6
  license = "EUPL-1.2"
7
7
  license-files = ["LICENSE"]
8
8
  requires-python = ">=3.12"
9
9
  authors = [
10
- { name = "Bureau Architectuur Digitale Overheid" },
10
+ { name = "Nederlandse Digitale Dienst" },
11
11
  ]
12
- keywords = ["archimate", "archi", "enterprise-architecture", "cli", "modeling"]
12
+ keywords = ["archimate", "archi", "enterprise-architecture", "cli", "modeling", "architecture-as-code"]
13
13
  classifiers = [
14
14
  "Development Status :: 4 - Beta",
15
15
  "Environment :: Console",
16
16
  "Intended Audience :: Developers",
17
- "Topic :: Software Development :: Documentation",
17
+ "Intended Audience :: Information Technology",
18
+ "Natural Language :: Dutch",
19
+ "Operating System :: OS Independent",
20
+ "Programming Language :: Python :: 3",
18
21
  "Programming Language :: Python :: 3.12",
19
22
  "Programming Language :: Python :: 3.13",
23
+ "Programming Language :: Python :: 3.14",
24
+ "Topic :: Software Development :: Documentation",
20
25
  ]
21
26
  # lxml 6.1.3 stops resolving external parameter entities by default
22
27
  dependencies = ["lxml>=6.1.3", "typer>=0.26"]
@@ -25,6 +30,7 @@ dependencies = ["lxml>=6.1.3", "typer>=0.26"]
25
30
  Homepage = "https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting"
26
31
  Repository = "https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting"
27
32
  Issues = "https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/issues"
33
+ Changelog = "https://github.com/BureauArchitectuurDigitaleOverheid/ai-assisted-architecting/blob/main/CHANGELOG.md"
28
34
 
29
35
  [project.scripts]
30
36
  archi = "archi_tool.cli:main"
@@ -56,10 +62,7 @@ dev = ["pytest>=8", "pre-commit>=4"]
56
62
  target-version = "py312"
57
63
 
58
64
  [tool.ruff.lint]
59
- # Bugs and dead code first. Import sorting and the formatter follow in a
60
- # separate PR once the open feature branches have landed, so this one does
61
- # not cause merge conflicts in every file.
62
- select = ["E", "F", "W", "B"]
65
+ select = ["E", "F", "W", "B", "I"]
63
66
  ignore = [
64
67
  "E501", # line length is left to the formatter
65
68
  "B008", # Typer declares options as call defaults by design