Teil C aus dem Design #171 (dort Entscheidungen und verworfene Alternativen). Unabhängig von #177/#178 baubar; der Export-Kopf unten ist die Konstante, die #177 bei der Erfassung ausschließt.
Problem
Projekt-Repositories tragen eigene Agentenregeln, die sich wiederholen und auseinanderlaufen (Belegt/Annahme trennen, Secrets nur in .env, kein Force-Push, Sprachregel). Die Instanz soll diese Leitlinien einmal halten und an die Repos ausliefern - so, dass jedes Repo lokal arbeitsfähig bleibt, auch in CI und ohne MCP-Zugang (Entscheidung D6 in #171: generierte Datei per PR, nicht Abruf zur Laufzeit).
Entwurf
1. Auswahl ohne neues Schema. Welche Seiten Leitlinien sind, entscheidet die Instanz mit dem, was search schon kann: export guidelines --field <k=v>... nimmt dieselben --field-Filter wie tools/wikitool search (z. B. einen Subtyp oder ein Tag, das die Instanz dafür vergibt). Der Stack legt keinen Typ und kein Feld fest; die Konvention gehört in kb/CONVENTIONS.md der Instanz.
2. Mechanisches Rendern (kein LLM) nach stdout oder --out <datei>:
Zeile 1: <!-- wikitool:export kind=guidelines instance=<origin-URL oder "local"> commit=<sha> generated=<ISO-8601 UTC> - generiert, nicht von Hand ändern -->
Danach je Seite, nach Titel sortiert: ## <Titel>, der Seitentext ohne Frontmatter; Wikilinks als Klartext (Anzeigetext bzw. Titel), [^cite-id]-Marker und der ## Footnotes-Abschnitt entfernt, stattdessen eine Zeile mit dem Seitentitel als Herkunft in der Instanz.
Gleiche Seiten auf gleichem Commit → byte-identische Ausgabe (bis auf generated=, das mit --no-timestamp entfällt).
Weigert sich bei einem schmutzigen Arbeitsbaum, weil commit= sonst lügt.
3. Auslieferung - eine kurze Instruction (oder ein Abschnitt der Instruction aus #178): Ein Repo nimmt teil, indem es die Datei GUIDELINES.md im Root enthält (Opt-in durch Vorhandensein, keine Zielliste in der Instanz). Pro teilnehmendem Repo: erzeugen, mit dem Stand im Repo vergleichen, bei Unterschied PR im Repo über das Forge-Werkzeug der Sitzung (gitea-mcp, gh). Das AGENTS.md des Repos verweist auf die Datei (Claude Code: @GUIDELINES.md). Bei einem öffentlichen Ziel-Repo ist die PR-Prüfung zugleich die Prüfung, dass nichts Privates hinausgeht - die Instruction sagt das ausdrücklich.
4. Kein Rückfluss. Eine Datei mit <!-- wikitool:export in Zeile 1 ist Ausgabe der Instanz; raw/CONTRACT.md § What does not belong here ("Anything the LLM wrote") schließt sie als Quelle aus. Mechanisch durchgesetzt in raw capture (#177).
Akzeptanzkriterien
Die Ausgabe enthält genau die Seiten, die search mit denselben --field-Filtern findet, nach Titel sortiert.
Die Ausgabe enthält keine Wikilink-Syntax, keine [^…]-Marker, keinen ## Footnotes-Abschnitt und kein Frontmatter; jede Seite nennt ihren Titel als Herkunft.
Zeile 1 beginnt mit <!-- wikitool:export und nennt den Commit des Arbeitsbaums; bei schmutzigem Baum Abbruch mit exit 1.
Zwei Läufe auf demselben Commit mit --no-timestamp sind byte-identisch.
Das Kommando schreibt nichts außer stdout bzw. der mit --out genannten Datei.
pytest, docs verify, instructions verify grün; CI grün.
Betroffene Stellen
neues Kommando (Arbeitsname export guidelines) unter tools/chemenu/commands/, Wiederverwendung der Filter aus search, Wikilink-/Footnote-Behandlung aus links.py/cite_cmd.py
Kommando-Record in tools/CONTRACT.md
Instruction unter instructions/ (oder Abschnitt der #178-Instruction), raw/CONTRACT.md (Export-Kopf als Ausschlussmerkmal), kb/CONTRACT.md (Verweis: Auswahl ist Instanzkonvention)
README.md, tools/README.md
Versionsteil
--minor: neues, nur lesendes Kommando und eine Instruction. Drop-in.
Teil C aus dem Design #171 (dort Entscheidungen und verworfene Alternativen). Unabhängig von #177/#178 baubar; der Export-Kopf unten ist die Konstante, die #177 bei der Erfassung ausschließt.
## Problem
Projekt-Repositories tragen eigene Agentenregeln, die sich wiederholen und auseinanderlaufen (Belegt/Annahme trennen, Secrets nur in `.env`, kein Force-Push, Sprachregel). Die Instanz soll diese Leitlinien einmal halten und an die Repos ausliefern - so, dass jedes Repo lokal arbeitsfähig bleibt, auch in CI und ohne MCP-Zugang (Entscheidung D6 in #171: generierte Datei per PR, nicht Abruf zur Laufzeit).
## Entwurf
**1. Auswahl ohne neues Schema.** Welche Seiten Leitlinien sind, entscheidet die Instanz mit dem, was `search` schon kann: `export guidelines --field <k=v>...` nimmt dieselben `--field`-Filter wie `tools/wikitool search` (z. B. einen Subtyp oder ein Tag, das die Instanz dafür vergibt). Der Stack legt keinen Typ und kein Feld fest; die Konvention gehört in `kb/CONVENTIONS.md` der Instanz.
**2. Mechanisches Rendern** (kein LLM) nach stdout oder `--out <datei>`:
- Zeile 1: `<!-- wikitool:export kind=guidelines instance=<origin-URL oder "local"> commit=<sha> generated=<ISO-8601 UTC> - generiert, nicht von Hand ändern -->`
- Danach je Seite, nach Titel sortiert: `## <Titel>`, der Seitentext ohne Frontmatter; Wikilinks als Klartext (Anzeigetext bzw. Titel), `[^cite-id]`-Marker und der `## Footnotes`-Abschnitt entfernt, stattdessen eine Zeile mit dem Seitentitel als Herkunft in der Instanz.
- Gleiche Seiten auf gleichem Commit → byte-identische Ausgabe (bis auf `generated=`, das mit `--no-timestamp` entfällt).
- Weigert sich bei einem schmutzigen Arbeitsbaum, weil `commit=` sonst lügt.
**3. Auslieferung** - eine kurze Instruction (oder ein Abschnitt der Instruction aus #178): Ein Repo nimmt teil, indem es die Datei `GUIDELINES.md` im Root enthält (Opt-in durch Vorhandensein, keine Zielliste in der Instanz). Pro teilnehmendem Repo: erzeugen, mit dem Stand im Repo vergleichen, bei Unterschied PR im Repo über das Forge-Werkzeug der Sitzung (`gitea-mcp`, `gh`). Das AGENTS.md des Repos verweist auf die Datei (Claude Code: `@GUIDELINES.md`). Bei einem öffentlichen Ziel-Repo ist die PR-Prüfung zugleich die Prüfung, dass nichts Privates hinausgeht - die Instruction sagt das ausdrücklich.
**4. Kein Rückfluss.** Eine Datei mit `<!-- wikitool:export` in Zeile 1 ist Ausgabe der Instanz; `raw/CONTRACT.md` § What does not belong here ("Anything the LLM wrote") schließt sie als Quelle aus. Mechanisch durchgesetzt in `raw capture` (#177).
## Akzeptanzkriterien
- [ ] Die Ausgabe enthält genau die Seiten, die `search` mit denselben `--field`-Filtern findet, nach Titel sortiert.
- [ ] Die Ausgabe enthält keine Wikilink-Syntax, keine `[^…]`-Marker, keinen `## Footnotes`-Abschnitt und kein Frontmatter; jede Seite nennt ihren Titel als Herkunft.
- [ ] Zeile 1 beginnt mit `<!-- wikitool:export` und nennt den Commit des Arbeitsbaums; bei schmutzigem Baum Abbruch mit exit 1.
- [ ] Zwei Läufe auf demselben Commit mit `--no-timestamp` sind byte-identisch.
- [ ] Das Kommando schreibt nichts außer stdout bzw. der mit `--out` genannten Datei.
- [ ] `pytest`, `docs verify`, `instructions verify` grün; CI grün.
## Betroffene Stellen
- neues Kommando (Arbeitsname `export guidelines`) unter `tools/chemenu/commands/`, Wiederverwendung der Filter aus `search`, Wikilink-/Footnote-Behandlung aus `links.py`/`cite_cmd.py`
- Kommando-Record in `tools/CONTRACT.md`
- Instruction unter `instructions/` (oder Abschnitt der #178-Instruction), `raw/CONTRACT.md` (Export-Kopf als Ausschlussmerkmal), `kb/CONTRACT.md` (Verweis: Auswahl ist Instanzkonvention)
- `README.md`, `tools/README.md`
## Versionsteil
**`--minor`**: neues, nur lesendes Kommando und eine Instruction. Drop-in.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Teil C aus dem Design #171 (dort Entscheidungen und verworfene Alternativen). Unabhängig von #177/#178 baubar; der Export-Kopf unten ist die Konstante, die #177 bei der Erfassung ausschließt.
Problem
Projekt-Repositories tragen eigene Agentenregeln, die sich wiederholen und auseinanderlaufen (Belegt/Annahme trennen, Secrets nur in
.env, kein Force-Push, Sprachregel). Die Instanz soll diese Leitlinien einmal halten und an die Repos ausliefern - so, dass jedes Repo lokal arbeitsfähig bleibt, auch in CI und ohne MCP-Zugang (Entscheidung D6 in #171: generierte Datei per PR, nicht Abruf zur Laufzeit).Entwurf
1. Auswahl ohne neues Schema. Welche Seiten Leitlinien sind, entscheidet die Instanz mit dem, was
searchschon kann:export guidelines --field <k=v>...nimmt dieselben--field-Filter wietools/wikitool search(z. B. einen Subtyp oder ein Tag, das die Instanz dafür vergibt). Der Stack legt keinen Typ und kein Feld fest; die Konvention gehört inkb/CONVENTIONS.mdder Instanz.2. Mechanisches Rendern (kein LLM) nach stdout oder
--out <datei>:<!-- wikitool:export kind=guidelines instance=<origin-URL oder "local"> commit=<sha> generated=<ISO-8601 UTC> - generiert, nicht von Hand ändern -->## <Titel>, der Seitentext ohne Frontmatter; Wikilinks als Klartext (Anzeigetext bzw. Titel),[^cite-id]-Marker und der## Footnotes-Abschnitt entfernt, stattdessen eine Zeile mit dem Seitentitel als Herkunft in der Instanz.generated=, das mit--no-timestampentfällt).commit=sonst lügt.3. Auslieferung - eine kurze Instruction (oder ein Abschnitt der Instruction aus #178): Ein Repo nimmt teil, indem es die Datei
GUIDELINES.mdim Root enthält (Opt-in durch Vorhandensein, keine Zielliste in der Instanz). Pro teilnehmendem Repo: erzeugen, mit dem Stand im Repo vergleichen, bei Unterschied PR im Repo über das Forge-Werkzeug der Sitzung (gitea-mcp,gh). Das AGENTS.md des Repos verweist auf die Datei (Claude Code:@GUIDELINES.md). Bei einem öffentlichen Ziel-Repo ist die PR-Prüfung zugleich die Prüfung, dass nichts Privates hinausgeht - die Instruction sagt das ausdrücklich.4. Kein Rückfluss. Eine Datei mit
<!-- wikitool:exportin Zeile 1 ist Ausgabe der Instanz;raw/CONTRACT.md§ What does not belong here ("Anything the LLM wrote") schließt sie als Quelle aus. Mechanisch durchgesetzt inraw capture(#177).Akzeptanzkriterien
searchmit denselben--field-Filtern findet, nach Titel sortiert.[^…]-Marker, keinen## Footnotes-Abschnitt und kein Frontmatter; jede Seite nennt ihren Titel als Herkunft.<!-- wikitool:exportund nennt den Commit des Arbeitsbaums; bei schmutzigem Baum Abbruch mit exit 1.--no-timestampsind byte-identisch.--outgenannten Datei.pytest,docs verify,instructions verifygrün; CI grün.Betroffene Stellen
export guidelines) untertools/chemenu/commands/, Wiederverwendung der Filter aussearch, Wikilink-/Footnote-Behandlung auslinks.py/cite_cmd.pytools/CONTRACT.mdinstructions/(oder Abschnitt der #178-Instruction),raw/CONTRACT.md(Export-Kopf als Ausschlussmerkmal),kb/CONTRACT.md(Verweis: Auswahl ist Instanzkonvention)README.md,tools/README.mdVersionsteil
--minor: neues, nur lesendes Kommando und eine Instruction. Drop-in.