Skip to content

ci: the verify-full label forces the full run, also for doc-only PRs - #90

Merged
Fluory merged 3 commits into
mainfrom
claude/ci-verify-full-label-89
Sep 28, 2026
Merged

Fluory merged 3 commits into
mainfrom
claude/ci-verify-full-label-89

Conversation

@Fluory

@Fluory Fluory commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Warum

Fixes #89 · Voraussetzung für den Release-Nachweis in #86

Arbeitsstand

  • Ziel: Das Label verify-full erzwingt die volle Prüfung auch bei PRs, die nur Markdown ändern (z. B. ein Release).
  • Nicht-Ziele: andere Gates, Laufzeiten, neue Jobs.
  • Erledigt: Label zählt in „Detect doc-only changes“ als Code- und KI-Änderung; Ereignis labeled; uv vor verify:full; pnpm evals unabhängig von der uv-Version; Nachweis per Wegwerf-PR test(ci): doc-only probe for the verify-full label – do not merge #91.
  • Offen: Merge; danach läuft verify:full am Release-PR chore(release): v0.1.0 – pilot scope #86.
  • Annahmen: keine.
  • Nächster kleinster Schritt: Merge.

Was ist passiert (Klartext)

Änderung an der CI (automatische Prüfung bei jedem PR). Vor einem Release muss laut Projektregeln die volle Prüfung laufen – Tests, Browser-Tests und KI-Qualitätsprüfung. Man fordert sie mit dem Label verify-full an. Die CI hat sie aber übersprungen, wenn ein PR nur Texte (Markdown) ändert – und ein Release-PR ändert genau das: das Änderungsprotokoll. Jetzt gilt: Wer das Label setzt, bekommt die volle Prüfung immer, und schon das Setzen des Labels startet sie. PRs ohne Label bleiben so schnell wie bisher. Beim Testen kamen zwei ältere Fehler ans Licht, die die volle Prüfung ohne KI-Änderung nie hätte bestehen lassen: Das Werkzeug uv fehlte an dieser Stelle, und der Aufruf der KI-Qualitätsprüfung passte nicht zur neuesten uv-Version. Beides ist behoben. Rückweg: diesen PR rückgängig machen (Revert).

Plan-Pflicht (SYSTEM.md §4)

  • Kein Auslöser – keine Modulgrenze, öffentliche API, Migration, Auth/Rechte, kein Zahlungs-/Daten-/Infrapfad, höchstens zwei Module, keine Architekturvarianten, umkehrbar
  • Auslöser zutreffend – Impact Manifest ausgefüllt (Plan vor Code)

Impact Manifest

  • Betroffene Module: CI (.github/workflows/ci.yml, Job check) und das Skript evals in package.json – kein Anwendungscode.
  • Schnittstellen / Datenänderungen: keine. Neues Auslöser-Ereignis labeled; code=true und ai=true zusätzlich bei Label verify-full; setup-uv vor verify:full.
  • Akzeptanzkriterien: die aus ci: the verify-full label forces the full run, also for doc-only PRs #89.
  • Testplan: Wegwerf-PR test(ci): doc-only probe for the verify-full label – do not merge #91 auf diesem Branch, ändert nur eine .md-Datei: ohne Label muss check im Doku-Modus bleiben; Label nachträglich setzen → labeled-Lauf mit verify, verify:full, AI verify und Eval-Gate. Dieser PR selbst läuft mit Label.
  • Verifizierte Fakten: „Detect doc-only changes“ setzte code=false für docs/** und *.md; alle teuren Schritte hängen an code=true (ci.yml); labeled fehlte in on.pull_request.types. YAML lokal geparst.
  • Offene Annahmen: keine.
  • Nicht-Ziele: Änderungen an anderen Jobs.
  • Risiken und Rollback: Mehr CI-Minuten nur bei gesetztem Label. labeled startet bei jedem Label einen Lauf: bei Doku-PRs schnell, bei Code-PRs den vollen verify (mit verify-full sogar verify:full, ~5 min) – dasselbe Muster wie edited, cancel-in-progress begrenzt Dopplungen. uv ist in der CI nicht gepinnt („latest“) – das Skript ist jetzt versionsunabhängig. Rollback: Revert dieses PRs.

Geändert

  • .github/workflows/ci.yml: on.pull_request.types + labeled; „Detect doc-only changes“: Label verify-full → code=true und ai=true; setup-uv vor „Install Playwright“, Bedingung ai oder verify:full
  • package.json: evals = uv run --directory services/ai … (ohne --project)

Nachweis (SYSTEM.md §11)

Doku-Entscheidung (genau eine)

  • Keine langlebige Doku betroffen – Begründung: AGENTS.md beschreibt das Label bereits („with PR label verify-full“); die CI setzt das jetzt auch für Doku-PRs um
  • Doku betroffen und im selben PR aktualisiert:
    • Produktdoku (P0: README): –
    • Technische Doku: –
    • Architekturkarte: –
    • ADR: –
    • CHANGELOG [Unreleased] (sichtbares Feature oder Verhalten – im selben PR, nie „später")

Entferntes oder Umbenanntes: docs/ + README gegrept, Treffer bereinigt: nichts entfernt

Dateigrößen und neue Bausteine (SYSTEM.md §7)

Dateien über 500 Zeilen im Diff (Ausnahmen: generierter Code, Lockfiles, Fixtures, Migrationen, Schemas, Ressourcen, Doku, Konfiguration):

  • keine
  • bewusst belassen – Begründung: –
  • im selben PR nach fachlicher Verantwortung geteilt
  • Folge-Issue –

Über 800 Zeilen mit neuer Fachlogik oder über 1000 Zeilen (P1/P2): nicht betroffen

Neue Shared-Komponente, Utility-Datei, Adapter oder fachlicher Service:

  • nein
  • ja – gesucht nach: –

Subagent-Einsätze

Keine.

Risiken / offene Punkte


🤖 Generated with Claude Code

AGENTS.md requires verify:full before a release, and the label is the
way to ask for it - but the change detection marked a Markdown-only PR
as code=false, which skipped install, verify and verify:full. The
release PR #86 (CHANGELOG, AGENTS.md, a skill file) thus got no full
run. The label now counts as a code change, and adding it to an open
PR starts a run (labeled event). PRs without the label are unchanged.

Fixes #89

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Fluory Fluory added the verify-full Run verify:full (integration + E2E) in CI label Sep 28, 2026
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
requestflow Ready Ready Preview Sep 28, 2026 9:53am UTC
requestflow-ai Ready Ready Preview Sep 28, 2026 9:53am UTC

The fresh review of #90 found that verify:full ends with the eval gate
(`uv run …`) while uv was only installed later and only for AI changes:
run 36396210580 failed with "uv: not found" - the verify-full label had
never worked for a PR without AI changes. uv now comes before verify:full
whenever it runs, and the label also forces the AI service checks
(ruff, pyright, pytest, eval gate), which belong to verify (AGENTS.md).

Refs #89

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rsion

In CI (uv 0.12.19, installed as "latest") `uv run --project services/ai
--directory services/ai` resolved the project relative to the directory,
i.e. services/ai/services/ai, and failed with "Project directory does
not exist"; locally uv 0.11.24 resolved it against the start directory.
With --directory alone the project is found in services/ai under both.

Refs #89

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Fluory

Fluory commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Frischer Review (/review-pr) – unabhängiger Reviewer-Agent ohne Umsetzungskontext, 2026-09-28

  1. [Blocker] – ci.yml Z. 111 und Z. 120 – pnpm verify:full ruft über pnpm evals das Tool uv auf. setup-uv läuft aber nur bei ai == 'true' und kommt erst nach diesem Schritt. Run 36396210580 bricht deshalb mit sh: 1: uv: not found, Exit 1 ab. – Folge: Jeder PR mit verify-full, der services/ai nicht ändert, wird rot – genau der Release-PR chore(release): v0.1.0 – pilot scope #86. AK 1 nicht erfüllt, check dieses PRs rot. – Empfehlung: setup-uv vor pnpm verify:full ziehen und seine Bedingung um die verify:full-Bedingung erweitern.
  2. [Important] – ci.yml Z. 46 – Das Label setzt nur code, nicht ai. Damit fallen ruff, pyright und pytest im Release-PR weg, obwohl sie laut AGENTS.md zu verify gehören. – Empfehlung: forced auch in die ai-Bedingung aufnehmen.
  3. [Important] – Testplan – Der Doku-PR-Pfad (AK 1 und 2) soll erst nach dem Merge an chore(release): v0.1.0 – pilot scope #86 belegt werden; Punkt 1 zeigt, dass er ohne Beleg kaputt gemergt worden wäre. – Empfehlung: vor dem Merge mit einem Wegwerf-PR belegen, der nur .md ändert; das Label erst nach dem Öffnen setzen.
  4. [Note] – PR-Text „Risiken“ – „labeled startet … einen (schnellen) Lauf“ stimmt nur für Doku-PRs; bei Code-PRs wiederholt jedes Label den vollen verify, mit verify-full sogar verify:full (~4 min). Vertretbar, gleiches Muster wie edited. – Text korrigieren; nicht per Job-if auf den Label-Namen filtern (ein übersprungener Pflicht-Job meldet Success).
  5. [Note] – „Risiken / offene Punkte“ – Die zitierte Freigabe „merge getestetes“ setzt eine grüne CI voraus. – Nach dem Fix den grünen Lauf verlinken.

Ohne Befund geprüft: ${{ contains() }} liefert nur true/false (keine Injection); Default-Shell bash -e ohne pipefail, grep -q in der if-Bedingung löst kein set -e aus; | bindet stärker als ||; die labeled-Payload trägt aktuellen Body und Labels; der Klartext nennt CI-Änderung und Revert; Mehrkosten nur mit Label.

Urteil: changes requested – check ist rot, und AK 1 ist für Release-PRs so nicht erfüllbar.


Bearbeitung: 1 → setup-uv läuft jetzt vor verify:full, sobald verify:full läuft (c9b0863). 2 → das Label setzt auch ai=true. 3 → Wegwerf-PR #91 (nur .md): ohne Label check in 9 s (Doku-Modus); Label nachträglich gesetzt → der erste volle Lauf deckte einen zweiten, älteren Fehler auf: pnpm evals scheiterte mit uv 0.12.19 (CI, „latest“) an --project services/ai --directory services/ai („Project directory does not exist“; lokal uv 0.11.24 unauffällig) → Skript auf --directory allein umgestellt (88e0788), lokal Eval-Gate bestanden; danach #91 grün in 5 min 20 s mit pnpm verify, pnpm verify:full, AI verify und Eval-Gate. #91 geschlossen, Branch gelöscht. 4, 5 → PR-Text korrigiert.

@Fluory
Fluory marked this pull request as ready for review September 28, 2026 11:14
@Fluory

Fluory commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Merge auf Freigabe des Orchestrators (2026-09-28: „merge getestetes“) – CI grün im vollen Lauf (4 min 40 s), Doku-PR-Pfad in #91 belegt.

@Fluory
Fluory merged commit 0ac296c into main Sep 28, 2026
10 of 11 checks passed

This branch was successfully deployed

2 active deployments
Preview – requestflow-ai — 88e07882 Deployed Sep 28, 2026 by vercel[bot]
Preview – requestflow — 88e07882 Deployed Sep 28, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

verify-full Run verify:full (integration + E2E) in CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: the verify-full label forces the full run, also for doc-only PRs

1 participant