80a14a7467de36a3b075282a85abeed5387d6ed4
Der letzte offene Punkt der Sitzung D („Gitea status links use the repo-scoped URLs"). Beim Nachsehen war es kein Scoping-Problem, sondern ein fehlendes Feature: `server.publicBaseUrl` ist als „used for all links posted to Gitea" dokumentiert, der Executor postete aber `targetUrl = null` — es gab überhaupt keinen Link. Jetzt zeigt der Status auf die Artefaktseite des Builds, also auf die Logs, um die es geht. Ohne `publicBaseUrl` bleibt er null: ein relativer Link in einem Gitea-Status wäre schlimmer als keiner, er löste gegen die Forge auf. Die Präfix-Regel wohnt jetzt an einer Stelle (`RepoLinks`), weil drei dasselbe damit tun: die Seiten, die API-Antworten und diese Ziel-URLs — und eine dreimal ausgeschriebene Regel driftet. Die Slice-Tests binden die echte Komponente per @Import ein, statt die Regel im Test nachzubauen. Ein neuer Test (mit publicBaseUrl trägt der Status die Artefaktseite; die vorhandenen Tests halten fest, dass ohne sie weiterhin null gepostet wird). 499 Tests grün, ktlint sauber. Plan und Architektur-Skill nachgezogen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Werkator
Lightweight, declarative and highly opinionated software build system (CI/CD).
Documentation
- docs/configuration.md — configuration reference
- docs/bootstrapping.md — initializing a repository with
init - docs/deployment.md — running Werkator as a systemd service behind a reverse proxy
Developer Setup
Source .envrc to add tools/ to your PATH, or install direnv to have this done automatically on cd:
source .envrc
Common tasks:
./gradlew build # compile and run all checks
./gradlew test # run tests
./gradlew ktlintFormat # auto-format Kotlin sources
./gradlew ktlintCheck # check formatting (also runs as part of build)
adr-status # show all architecture decisions at a glance
direnv
direnv sources .envrc automatically whenever you enter the repository and unloads it when you leave.
# Ubuntu
sudo apt install direnv
# add to ~/.bashrc or ~/.zshrc
eval "$(direnv hook bash)" # or: eval "$(direnv hook zsh)"
Trust the project's .envrc once per clone:
direnv allow
Tools (tools/)
| Command | Description |
|---|---|
adr-status |
List all Architecture Decision Records with their status and decision summary |
Architecture Decision Records
Major technical decisions are documented as ADRs in docs/adrs/.
adr-status # show all decisions at a glance
New ADRs follow the template at docs/adrs/0000-00-00.adr-template.md.
Languages
Kotlin
87%
HTML
4.6%
Shell
4.2%
JavaScript
3%
CSS
1.2%