Kontext
Memo 060 Phase 8 / PRD-026 — Lint-Regel + Cross-Repo-Smoke-Test.
Praevention zukuenftiger Boilerplate-Drift. GitHub-Action blockt PRs mit hardcoded Schema-/Tool-/Datenquellen-Zahlen.
Aenderungen
Reusable Workflow
.github/workflows/check-boilerplate.yml — on: workflow_call mit Inputs whitelist-paths, stats-url, additional-patterns
.github/workflows/check-boilerplate.sh — separates Bash-Script (lokale Testbarkeit). Smarte Whitelist-Logik: behandelt Single-Segment-Pfade als --exclude-dir und --exclude, Multi-Segment-Pfade per Post-Filter (notwendig weil grep --exclude-dir nur Basename matched).
Caller-Workflow
.github/workflows/lint-boilerplate.yml — referenziert lokales reusable workflow, whitelist-Erweiterung fuer profile/ (Build-Output)
Architektur
Pattern wird dynamisch aus stats.json (Source-of-Truth in flowmcp-schemas-public) gebaut — Lint-Regel passt sich automatisch jedem Stats-Update an. Beispiel-Pattern aktuell: \b(365|288|1575)\b.
Tests
- Lokal mit
bash check-boilerplate.sh --pattern '\b(1575|288|365)\b' --excludes '...' → exit 0
- Negative-Test mit hardcoded
1575 in Source-File → exit 1 mit Datei + Zeile
Kontext
Memo 060 Phase 8 / PRD-026 — Lint-Regel + Cross-Repo-Smoke-Test.
Praevention zukuenftiger Boilerplate-Drift. GitHub-Action blockt PRs mit hardcoded Schema-/Tool-/Datenquellen-Zahlen.
Aenderungen
Reusable Workflow
.github/workflows/check-boilerplate.yml—on: workflow_callmit Inputswhitelist-paths,stats-url,additional-patterns.github/workflows/check-boilerplate.sh— separates Bash-Script (lokale Testbarkeit). Smarte Whitelist-Logik: behandelt Single-Segment-Pfade als--exclude-dirund--exclude, Multi-Segment-Pfade per Post-Filter (notwendig weil grep--exclude-dirnur Basename matched).Caller-Workflow
.github/workflows/lint-boilerplate.yml— referenziert lokales reusable workflow, whitelist-Erweiterung fuerprofile/(Build-Output)Architektur
Pattern wird dynamisch aus
stats.json(Source-of-Truth in flowmcp-schemas-public) gebaut — Lint-Regel passt sich automatisch jedem Stats-Update an. Beispiel-Pattern aktuell:\b(365|288|1575)\b.Tests
bash check-boilerplate.sh --pattern '\b(1575|288|365)\b' --excludes '...'→ exit 01575in Source-File → exit 1 mit Datei + Zeile