chore: release v0.20.42

This commit is contained in:
Ulas Kalayci
2026-04-21 10:38:45 +02:00
parent d1ec7367a0
commit 8f55855364
16 changed files with 375 additions and 5 deletions
+41
View File
@@ -0,0 +1,41 @@
---
name: pr-review
description: Review a PR against the Oikos Hard Constraints and decide close/request-changes/merge
disable-model-invocation: true
user-invocable: true
argument-hint: "<pr-number>"
allowed-tools:
- Bash(gh pr *)
- Bash(gh api *)
- Bash(git *)
- Bash(npm test *)
- Bash(npm run test:*)
- Read
- Grep
- Glob
---
Run from inside `oikos/`. `$1` is the PR number.
1. **Fetch**`gh pr view $1 --repo ulsklyc/oikos`, `gh pr diff $1 --repo ulsklyc/oikos`, `gh pr checks $1 --repo ulsklyc/oikos`. Note failing checks. Delegate the deep read to the `pr-reviewer` subagent (`Agent({ subagent_type: "pr-reviewer", ... })`) so main-thread context stays free.
2. **Constraint check** — walk the diff against CLAUDE.md Hard Constraints:
- No frontend frameworks / bundlers / CSS libraries added
- No `require`, only `import`/`export`
- No `eval`, no `innerHTML`
- All UI text via `t('key')`; `de` locale updated
- Migrations append-only (`server/db.js`)
- Design values from `public/styles/tokens.css`
- Route handlers wrapped in try/catch
- API shape `{ data }` / `{ error, code }`
Also check: PR has tests touching the relevant `test-<module>.js`, CHANGELOG entry under `## [Unreleased]`, commit subjects are Conventional Commits.
3. **Decide**
- **Blocking issue found** → `gh pr review $1 --request-changes --body "<english, grouped by file:line>"` and stop.
- **Not a fit** → explain politely and `gh pr close $1 --comment "..."`.
- **Clean** → `gh pr review $1 --approve --body "LGTM"` then `gh pr merge $1 --squash --delete-branch`. After merge, fetch `main` locally and consider running `/release-prep`.
## Guardrails
- Comments and review bodies: always English.
- Never merge with failing required checks. Never force-merge.
- Never close a PR without a reason comment — silent closes burn contributor trust.
- Never push directly to the PR branch. If a small fix is warranted, ask the contributor.