45 lines
2.7 KiB
Markdown
45 lines
2.7 KiB
Markdown
# werkregie Agent Instructions
|
|
|
|
## Project
|
|
|
|
werkregie orchestrates software development with AI agents.
|
|
So far it is the dashboard in `dashboard/`, a Kotlin web app that shows what the coding agents
|
|
and the build pipeline are doing right now; see [dashboard/README.md](dashboard/README.md).
|
|
[doc/system-architektur.md](doc/system-architektur.md) describes the system,
|
|
[doc/werkregie.werkbaum](doc/werkregie.werkbaum) holds the plan.
|
|
|
|
## Build and Test
|
|
|
|
Run from `dashboard/`:
|
|
|
|
```sh
|
|
./gradlew build # compile and test; needs Node for jsTest
|
|
./gradlew jsTest # the JavaScript of the page with node --test, TZ=Europe/Berlin (ADR 0002); part of build
|
|
./gradlew installDist # build/install/werkregie-dashboard/bin/werkregie-dashboard → http://localhost:4747/
|
|
./gradlew checkLicense # licenses against config/allowed-licenses.json; part of build
|
|
./gradlew dependencyCheckUpdate # loads the NVD data; Werkator's nightly build "vulnerability-data"
|
|
./gradlew dependencyCheckAnalyze # all known vulnerabilities from CVSS 4, from that data; main each night
|
|
./gradlew checkNewVulnerabilities -PvulnerabilityBaseline=origin/main # only those this branch brings; each PR
|
|
./gradlew dependencies --configuration runtimeClasspath --write-locks # gradle.lockfile, after a dependency change
|
|
./gradlew pitestPartial mutationCrapCheck # mutation tests of the classes changed against origin/main, limit 15; each build
|
|
./gradlew pitestFull mutationCrapCodeCharta mutationCrapCheck # all classes, ratchet limit; Werkator's nightly build "mutation"
|
|
```
|
|
|
|
The levels of these checks come from [doc/risk-analysis.md](doc/risk-analysis.md), criticality high.
|
|
OWASP Dependency-Check reads the NVD API key from `NVD_API_KEY` or the Gradle property `OWASP_API_KEY`.
|
|
|
|
## Workflow
|
|
|
|
Follow [doc/agentic-workflow.md](doc/agentic-workflow.md), the workflow of all Werk repositories:
|
|
roles, steps of a PR, review rounds, PR documents, the plan, versions and the writing style.
|
|
In addition, for werkregie:
|
|
|
|
- Its documents live in `doc/`, not `docs/`: `doc/agentic-workflow.md`, `doc/prs/`, `doc/werkregie.werkbaum`.
|
|
- werkregie holds the master copy of the shared workflow.
|
|
- `dashboard/build.gradle.kts` derives the version from the PR documents, from the base version 0.50.0 on;
|
|
`./gradlew changelog` writes their release notes into `build/changelog/CHANGELOG.md`.
|
|
For the version, each Gradle run needs the full history and `origin/main`; a shallow clone fails with a hint.
|
|
- GitHub `mhoennig/werkregie` is only a mirror of `main`; branches go to Gitea only.
|
|
- Werkator deploys each green `main` to mih09 with its build `deploy`; after the merge the agent only checks
|
|
that https://werkregie.javagil.de answers with the new version, e.g. by `/api/dashboard`.
|