This site
This website is not a one-off. It is generated from the same model as my profiles, and it goes through the same steps described under Approach.
Pipeline
- Model. My profile is a file in a language of its own (TextX). The grammar defines what a valid profile is.
- Content. The texts are Markdown files next to the model. A stage of the generator line only refers to entries in the model; the generator computes period and order.
- Generator. A model-to-text generator produces static HTML from this, without a database, without JavaScript and without external services.
- Checks. Every build is checked. Any finding aborts it.
- Publication. Only a checked build is uploaded. Beforehand, a comparison shows whether the published version was edited by hand.
Excerpt from the grammar
Projekterfahrung:
'projekt' name=ID '{'
'title:' title=STRING
'auftraggeber:' auftraggeber=[Auftraggeber]
'branche:' branche=[Branche]
'periode:' start=YearMonth 'to' end=YearMonthOrToday
'rolle:' rolle=STRING
('uses:' '[' uses+=[Wissensgebiet][','] ']')?
('achievements:' '[' achievements+=STRING[','] ']')?
'}'
;
What is checked
| Check | Rule |
|---|---|
| Block list | No name of a client or project. The list is derived from the model and grows with every new entry. |
| Private data | No personal data; address and phone number only in the imprint. |
| Links | Every internal link and every anchor resolves. |
| Required metadata | Every page has language, title, description and canonical address. |
| Language pairs | Every page exists in German and English; every stage refers to an entry in the model. |
The results of the current build are in the check report. The source code is on GitHub; the decision behind it is documented as ADR-013.
Built with agents
Generator, checks and texts were developed in dialogue with an AI agent (Claude Code). The decisions, the review and the approval of every text were mine. Commits with a substantial AI share are marked in the repository.
vorgehen.de