mirror of
https://github.com/Klotzkette/claude-fuer-deutsches-recht
synced 2026-06-09 10:03:19 +00:00
BGH-PDFs aus Plugins entfernt, Uploadgrenze respektiert
Das Cowork-/Marketplace-Upload geht knapp unter 1 MB in die Knie und gibt nur eine generische 'Plugin validation failed' zurueck. Ursache ist nicht die Frontmatter oder Manifest-Struktur, sondern die Dateigroesse. Behoben: - liquiditaetsplanung: 5 BGH-Volltext-PDFs (zusammen ~1 MB) entfernt, ZIP faellt von 1017 KB auf ~61 KB. - insolvenzrecht: dieselben PDFs entfernt, ZIP von 1003 KB auf ~47 KB. - references/rechtsprechung/INDEX.md jeweils ueberarbeitet: Volltexte werden jetzt ueber die BGH-Rechtsprechungsdatenbank und openJur verlinkt; juengere Entscheidung steht oben, Pinpoint-Zitierung bleibt verbindlich. - Strukturvalidator: PDF-Existenzpruefung entfernt, statt dessen wird das Vorliegen der INDEX.md gefordert. - Release-Validator: harter 950-KB-Schwellwert pro ZIP, damit der Upload-Limit-Fehler bereits im CI auffaellt.
This commit is contained in:
@@ -121,9 +121,10 @@ function checkMarketplace() {
|
||||
}
|
||||
const generator = 'skills/liquiditaetsvorschau-3-6-12-monate/werkzeuge/build_liquiditaetsplan.py';
|
||||
if (!exists(path.join(pluginRoot, generator))) errors.push(`${plugin.name}: missing standalone generator ${generator}`);
|
||||
for (const pdf of ['BGH_II_ZR_88-16_vom_2017-12-19.pdf', 'BGH_II_ZR_112-21_vom_2022-06-28.pdf', 'BGH_IX_ZR_48-21_vom_2022-04-28.pdf', 'BGH_IX_ZR_229-22_vom_2025-01-23.pdf', 'BGH_II_ZR_139-23_vom_2025-03-11.pdf']) {
|
||||
if (!exists(path.join(pluginRoot, 'references', 'rechtsprechung', pdf))) errors.push(`${plugin.name}: missing BGH PDF references/rechtsprechung/${pdf}`);
|
||||
}
|
||||
// BGH-Volltexte werden NICHT mehr als PDF mitgeliefert (verstößt gegen Cowork-Upload-Limit ~1 MB).
|
||||
// Stattdessen ist eine INDEX.md mit Online-Verweisen auf die BGH-Datenbank Pflicht.
|
||||
const idx = path.join(pluginRoot, 'references', 'rechtsprechung', 'INDEX.md');
|
||||
if (!exists(idx)) errors.push(`${plugin.name}: missing references/rechtsprechung/INDEX.md (BGH-Onlinequellenverzeichnis)`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,24 @@ def zip_names(zip_path: Path) -> set[str]:
|
||||
fail(f"{zip_path}: invalid ZIP: {exc}")
|
||||
|
||||
|
||||
# Cowork-/Marketplace-Upload-Limit. Praxiserprobt liegt die Grenze knapp unter 1 MB;
|
||||
# alles darüber wird vom Server abgelehnt („Plugin validation failed“ ohne Detail).
|
||||
# Wir setzen daher einen harten Schwellwert von 950 KB.
|
||||
MAX_ZIP_BYTES = 950 * 1024
|
||||
|
||||
|
||||
def validate_plugin_zip(dist_dir: Path, plugin_name: str) -> None:
|
||||
zip_path = dist_dir / f"{plugin_name}.zip"
|
||||
if not zip_path.exists():
|
||||
fail(f"{zip_path}: missing plugin ZIP")
|
||||
|
||||
size = zip_path.stat().st_size
|
||||
if size > MAX_ZIP_BYTES:
|
||||
fail(
|
||||
f"{zip_path}: {size} bytes überschreitet Cowork-Uploadgrenze ({MAX_ZIP_BYTES} bytes). "
|
||||
"Große Binärdateien (z. B. PDFs) entfernen und durch Online-Verweise ersetzen."
|
||||
)
|
||||
|
||||
names = zip_names(zip_path)
|
||||
if ".claude-plugin/plugin.json" not in names:
|
||||
fail(f"{zip_path}: .claude-plugin/plugin.json must be at ZIP root")
|
||||
|
||||
Reference in New Issue
Block a user