docs: LICENCE.md-Feature, .gitignore, Single-GPU-Doku
- pi-coder-judge-extension.ts: licenceMd() + writeLicenceMd() — erzeugt proprietäre LICENCE.md in der Doku-Phase (nur wenn noch nicht vorhanden) - tests: Guards und pure-logic-Tests für LICENCE.md ergänzt (38 Tests, alle grün) - .gitignore: Node, TypeScript-Artefakte, Backups, Editor-Dateien, OS-Metadaten - README.md + BEDIENUNGSANLEITUNG.md: vollständig auf Single-GPU-Architektur aktualisiert (ein Server, System-Prompt-Rollen, kein Quick-Judge, PASS WITH CONCERNS-Verhalten, LICENCE.md in /update_doku, start-single.sh) - SINGLE_SERVER_PLAN.md: entfernt (umgesetzt, kein Mehrwert mehr) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ba733fe684
commit
485ab30265
7 changed files with 297 additions and 357 deletions
|
|
@ -44,3 +44,17 @@ test("Loop-Erkennung greift auch ohne Blocker-Abschnitt (Fallback auf Gesamttext
|
|||
test("currentRole wird nach jedem optimize-Lauf auf 'coder' zurückgesetzt", () => {
|
||||
assert.match(extSource, /currentRole\s*=\s*"coder"/);
|
||||
});
|
||||
|
||||
test("LICENCE.md: deterministisch in der Doku-Phase, nur wenn nicht vorhanden, proprietär", () => {
|
||||
assert.match(extSource, /function licenceMd\b/);
|
||||
assert.match(extSource, /async function writeLicenceMd\b/);
|
||||
// wird in runUpdateDoku aufgerufen
|
||||
assert.match(extSource, /await writeLicenceMd\(pi, ctx\)/);
|
||||
// existierende Lizenz wird nicht überschrieben
|
||||
assert.match(extSource, /test -f LICENCE\.md/);
|
||||
// proprietärer Default
|
||||
assert.match(extSource, /Alle Rechte vorbehalten/);
|
||||
// Inhaber aus git config, Jahr aus aktuellem Datum
|
||||
assert.match(extSource, /git config user\.name/);
|
||||
assert.match(extSource, /new Date\(\)\.getFullYear\(\)/);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import { extractFn } from "./helpers.mjs";
|
|||
const parseVerdict = extractFn("parseVerdict");
|
||||
const parseBlockers = extractFn("parseBlockers");
|
||||
const normalizeForComparison = extractFn("normalizeForComparison");
|
||||
const licenceMd = extractFn("licenceMd");
|
||||
|
||||
test("parseVerdict: klares PASS", () => {
|
||||
assert.equal(parseVerdict("Review fertig.\nUrteil: PASS\nKeine Blocker."), "PASS");
|
||||
|
|
@ -64,3 +65,16 @@ test("normalizeForComparison: gleiche Blocker trotz Formatierungsunterschied →
|
|||
normalizeForComparison(b)
|
||||
);
|
||||
});
|
||||
|
||||
test("licenceMd: proprietärer Default mit eingesetztem Jahr und Inhaber", () => {
|
||||
const txt = licenceMd("2026", "Dieter Schlüter");
|
||||
assert.match(txt, /^# Lizenz/);
|
||||
assert.match(txt, /Copyright \(c\) 2026 Dieter Schlüter/);
|
||||
assert.match(txt, /Alle Rechte vorbehalten\./);
|
||||
assert.match(txt, /ohne vorherige ausdrückliche schriftliche/);
|
||||
assert.match(txt, /OHNE MÄNGELGEWÄHR/);
|
||||
});
|
||||
|
||||
test("licenceMd: Platzhalter-Inhaber wird unverändert eingesetzt", () => {
|
||||
assert.match(licenceMd("2030", "[Rechteinhaber eintragen]"), /Copyright \(c\) 2030 \[Rechteinhaber eintragen\]/);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue