From df7ea93060744f89d957e205e18c08c963671327 Mon Sep 17 00:00:00 2001 From: Torben Nehmer Date: Tue, 1 Sep 2026 20:34:21 +0200 Subject: [PATCH] ingest: Publish-Remote Gate and Issue Triage Session 2026-09-01 Files changed: - kb/concepts/INDEX.md - kb/concepts/Mass-Update Gate.md - kb/concepts/Publish-Remote Gate.md - kb/entities/projects/Chemenu.md - kb/entities/tools/wikitool.md - kb/index.md - kb/log.md - kb/provenance.md - kb/sources/INDEX.md - kb/sources/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md --- kb/concepts/INDEX.md | 3 +- kb/concepts/Mass-Update Gate.md | 4 +- kb/concepts/Publish-Remote Gate.md | 72 +++++++++++++++++++ kb/entities/projects/Chemenu.md | 7 +- kb/entities/tools/wikitool.md | 9 ++- kb/index.md | 10 +-- kb/log.md | 6 ++ kb/provenance.md | 7 +- kb/sources/INDEX.md | 3 +- ...ate and Issue Triage Session 2026-09-01.md | 71 ++++++++++++++++++ 10 files changed, 176 insertions(+), 16 deletions(-) create mode 100644 kb/concepts/Publish-Remote Gate.md create mode 100644 kb/sources/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md diff --git a/kb/concepts/INDEX.md b/kb/concepts/INDEX.md index d3b5a62..d7cd5c7 100644 --- a/kb/concepts/INDEX.md +++ b/kb/concepts/INDEX.md @@ -2,7 +2,7 @@ # kb/concepts/ - Index -78 page(s). Regenerated by `wikitool index rebuild`. +79 page(s). Regenerated by `wikitool index rebuild`. ## All @@ -60,6 +60,7 @@ | [[Personalization Plane]] | architecture | Schicht fuer Instanz-Identitaet: USER.md/SOUL.md werden als Template ausgeliefert, im Setup-Interview woertlich befuellt und vom doctor-Check auf fehlend wie unbefuellt geprueft | 2026-08-31 | | [[Privacy and Governance]] | workflow | Rahmenwerk zur Absicherung von Wiki-Inhalten über Datenfilterung beim Ingest, Audit-Trail-Protokollierung und umkehrbare Massenoperationen. | 2026-08-29 | | [[Procedural Memory]] | architecture | Langlebigste Speicherschicht für Abläufe, Muster, bewährte Vorgehensweisen und Rezepte, gewonnen aus wiederholten semantischen Beobachtungen. | 2026-08-29 | +| [[Publish-Remote Gate]] | workflow | Drittes, im Code durchgesetztes Gate: publish bricht mit Exit 42 ab, wenn die aufgeloeste Push-URL nicht in einer optionalen, gitignoreten Allowlist steht; anders als die anderen Gates gibt es keinen Freigabe-Token. | 2026-09-01 | | [[Quality and Self-Correction]] | workflow | Automatische Qualitätssicherung für Wikis mit Inhaltsbewertung, Selbstheilung und Widerspruchserkennung. | 2026-08-29 | | [[Quality Scoring]] | pattern | Quantitative Bewertung aller vom LLM geschriebenen Inhalte nach struktureller Qualität, Vollständigkeit der Quellenangaben, Konsistenz mit dem Wiki und Themenabdeckung. | 2026-08-29 | | [[RAG]] | architecture | Architekturmuster, bei dem LLMs die Generierung um Dokumente aus einer Wissensbasis anreichern. | 2026-08-29 | diff --git a/kb/concepts/Mass-Update Gate.md b/kb/concepts/Mass-Update Gate.md index 6ed58b6..f491ea9 100644 --- a/kb/concepts/Mass-Update Gate.md +++ b/kb/concepts/Mass-Update Gate.md @@ -4,7 +4,7 @@ concept_type: workflow tags: [gate, safety, mass-update, confirmation] created: 2026-08-03 modified: 2026-09-01 -related: [Content Quality Control, wikitool, Iteration and Cost Limits, Structural Enforcement over Documented Rule, Bulk Operations] +related: [Content Quality Control, wikitool, Iteration and Cost Limits, Structural Enforcement over Documented Rule, Bulk Operations, Publish-Remote Gate] sources: [Source - LLM Improvements Sonnet Analysis, Source - LLM Improvements Production Agent Gaps 2026, Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31, Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31, Source - LLM Improvements Codex Analysis] confidence: 0.88 confidence_base: 0.88 @@ -77,6 +77,7 @@ Das Mass-Update Gate ist ein Sicherheitsmechanismus, der die Ausführung pausier - **wird gespiegelt durch:** [[Iteration and Cost Limits]] - **wendet an:** [[Structural Enforcement over Documented Rule]] - **grenzt ab gegen:** [[Bulk Operations]] +- **verwandtes Gate:** [[Publish-Remote Gate]] ## Siehe auch @@ -86,6 +87,7 @@ Das Mass-Update Gate ist ein Sicherheitsmechanismus, der die Ausführung pausier - [[Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31]] - [[Structural Enforcement over Documented Rule]] - [[Bulk Operations]] +- [[Publish-Remote Gate]] ## Fußnoten diff --git a/kb/concepts/Publish-Remote Gate.md b/kb/concepts/Publish-Remote Gate.md new file mode 100644 index 0000000..0c03726 --- /dev/null +++ b/kb/concepts/Publish-Remote Gate.md @@ -0,0 +1,72 @@ +--- +type: types/concept.md +concept_type: workflow +tags: [] +created: 2026-09-01 +modified: 2026-09-01 +related: [Mass-Update Gate, Chemenu] +sources: [Source - Publish-Remote Gate and Issue Triage Session 2026-09-01] +confidence: 0.50 +confidence_base: 0.70 +provenance: sourced +summary: 'Drittes, im Code durchgesetztes Gate: publish bricht mit Exit 42 ab, wenn die aufgeloeste Push-URL nicht in einer optionalen, gitignoreten Allowlist steht; anders als die anderen Gates gibt es keinen Freigabe-Token.' +--- +# Publish-Remote Gate + +**Typ:** Workflow + +## Definition + +Ein im Code durchgesetztes Gate, das einen Schreibvorgang (hier: `publish`) auf ein +deklariertes, per Datei zugelassenes Ziel beschränkt. Der Vorgang bricht ab, wenn das +aufgelöste Push-Ziel nicht in der Allowlist steht - unabhängig davon, unter welchem Namen der +Remote lokal konfiguriert ist. + +## Kernpunkte + +- **Geprüft wird die aufgelöste URL, nicht der Remote-Name.** Ein namensbasiertes Gate würde + ein `publish` durchlassen, dessen `origin` zwischenzeitlich auf ein anderes Ziel umgebogen + wurde - genau der Fall, den das Gate abfangen soll. +- **Kein Freigabe-Token, anders als vergleichbare Gates.** Ein Gate, dessen Frage per + Änderungssatz beantwortbar ist ("ist diese konkrete Änderung richtig?"), kann sich mit einem + Token lösen, den ein Mensch einmalig ausstellt. Ein Gate, dessen Frage eine stehende + Eigenschaft des Checkouts ist ("gehört dieser Inhalt grundsätzlich in dieses Ziel?"), sollte + keinen Token haben - der einzige Weg daran vorbei ist ein bewusster Edit der Konfigurationsdatei + durch den Menschen, nie ein automatisierter Bypass. +- **Die Allowlist-Datei ist per Checkout, nicht Teil des versionierten Inhalts.** Sie + beschreibt, wohin *dieser* Checkout schreiben darf - eine committete Kopie würde jedem Klon + dieselbe Erlaubnis unterschieben, unabhängig davon, ob sie für ihn zutrifft. +- **Fehlende Datei bedeutet unbeschränkt, kaputte Datei bedeutet Fehler.** Diese Unterscheidung + ist wichtig: Ein Checkout ohne Beschränkungsbedarf soll nicht gezwungen sein, eine leere + Konfigurationsdatei zu pflegen; eine beschädigte Datei darf aber nicht wie eine abwesende + behandelt werden, sonst wird eine defekte Sicherung zu einer stillschweigend abgeschalteten. + +## Wann zu verwenden + +- Ein Checkout kann an mehr als ein Remote-Ziel schreiben, und ein Schreibvorgang an das + falsche Ziel ist teuer oder nicht rückgängig zu machen (z. B. weil das Ziel öffentlich ist). +- Die Menge der zulässigen Ziele ist eine stabile Eigenschaft des Checkouts, keine + Einzelfallentscheidung pro Vorgang. + +## Wann NICHT zu verwenden + +- Wenn nur ein Remote existiert und kein Risiko einer Zielverwechslung besteht - dort ist die + Allowlist reine Formalität ohne Schutzwirkung. +- Für Entscheidungen, die tatsächlich pro Änderungssatz getroffen werden sollen (dafür ist ein + Token-basiertes Gate wie das Mass-Update-Gate das richtige Muster). + +## Verwandte Concepts + +- [[Mass-Update Gate]] + +## Beziehungen + +- **gilt fuer:** [[Chemenu]] +- **verwandtes Gate:** [[Mass-Update Gate]] + +## Siehe auch + +- [[Source - Publish-Remote Gate and Issue Triage Session 2026-09-01]] +- [[Chemenu]] +- [[Mass-Update Gate]] + diff --git a/kb/entities/projects/Chemenu.md b/kb/entities/projects/Chemenu.md index 0d03b24..2b27e14 100644 --- a/kb/entities/projects/Chemenu.md +++ b/kb/entities/projects/Chemenu.md @@ -4,8 +4,8 @@ entity_type: project tags: [wiki, llm, knowledge-base] created: 2026-08-04 modified: 2026-09-01 -related: [Personalization Plane, Issue Label Scheme, Optional Instance Context File, Delete Rather Than Anonymize, Dual Licensing by File Plan] -sources: [Source - Copilot Skill Restructure Instructions, Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04, Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30, Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31, Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31, Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31, Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31, Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31, Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31, 'Source - Public Release, Corpus Purge and History Squash Session 2026-09-01'] +related: [Personalization Plane, Issue Label Scheme, Optional Instance Context File, Delete Rather Than Anonymize, Dual Licensing by File Plan, Publish-Remote Gate] +sources: [Source - Copilot Skill Restructure Instructions, Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04, Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30, Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31, Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31, Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31, Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31, Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31, Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31, 'Source - Public Release, Corpus Purge and History Squash Session 2026-09-01', Source - Publish-Remote Gate and Issue Triage Session 2026-09-01] confidence: 0.90 confidence_base: 0.90 provenance: mixed @@ -62,6 +62,7 @@ Das Repository hat bereits ein deterministisches CLI, `tools/wikitool` (Python, - **verwendet:** [[Optional Instance Context File]] - **wendet an:** [[Delete Rather Than Anonymize]] - **wendet an:** [[Dual Licensing by File Plan]] +- **setzt um:** [[Publish-Remote Gate]] ## Details @@ -215,6 +216,8 @@ Repositorys selbst und keine Aussagen aus einer Rohdatenquelle; der Änderungsda - [[Source - Public Release, Corpus Purge and History Squash Session 2026-09-01]] - [[Delete Rather Than Anonymize]] - [[Dual Licensing by File Plan]] +- [[Source - Publish-Remote Gate and Issue Triage Session 2026-09-01]] +- [[Publish-Remote Gate]] ## Fußnoten diff --git a/kb/entities/tools/wikitool.md b/kb/entities/tools/wikitool.md index 1ef49ef..b8e8fba 100644 --- a/kb/entities/tools/wikitool.md +++ b/kb/entities/tools/wikitool.md @@ -5,7 +5,7 @@ tags: [cli, automation, deterministic, wiki-management] created: 2026-08-03 modified: 2026-09-01 related: [Semantic Lint Automation, Session Orientation, Iteration and Cost Limits, KB Stack Versioning, KB Migration, Personalization Plane, Detect-Repair Asymmetry, Write-Once Frontmatter Fields, Denylist over Allowlist, Command Round-Trip Integrity, Green Suite Blind Spot, Ambient Environment Dependency, Structural Enforcement over Documented Rule, Optional Instance Context File] -sources: [Source - LLM Improvements Codex Analysis, Source - LLM Improvements Sonnet Analysis, Source - Copilot Skill Restructure Instructions, Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04, Source - LLM Improvements Production Agent Gaps 2026, Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30, Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31, Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31, Source - Conversation - Auto Mode and Tool Choice Session 2026-08-31, Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31, Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31, Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31, Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31, Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31, 'Source - Public Release, Corpus Purge and History Squash Session 2026-09-01'] +sources: [Source - LLM Improvements Codex Analysis, Source - LLM Improvements Sonnet Analysis, Source - Copilot Skill Restructure Instructions, Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04, Source - LLM Improvements Production Agent Gaps 2026, Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30, Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31, Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31, Source - Conversation - Auto Mode and Tool Choice Session 2026-08-31, Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31, Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31, Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31, Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31, Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31, 'Source - Public Release, Corpus Purge and History Squash Session 2026-09-01', Source - Publish-Remote Gate and Issue Triage Session 2026-09-01] confidence: 0.90 confidence_base: 0.90 provenance: sourced @@ -159,8 +159,9 @@ ist[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. Ein `raw_dir`-Testfixture löste `config.ROOT` gegen das echte Repo-Root statt die Fixture auf und bestand nur, weil zufällig ein Verzeichnis existierte, das der Korpus-Schnitt entfernte - in der Fixture geschlossen, nicht im einzelnen Test, aus demselben Grund wie Gitea #8. - Siehe [[Chemenu]], [[Mass-Update Gate]], [[Delete Rather Than Anonymize]], - [[Dual Licensing by File Plan]][^s-public-release-corpus-purge-and-history-squash-session-2026-09-01] + Siehe [[Chemenu]], [[Mass-Update Gate]], [[Publish-Remote Gate]], + [[Delete Rather Than Anonymize]], + [[Dual Licensing by File Plan]][^s-public-release-corpus-purge-and-history-squash-session-2026-09-01][^s-publish-remote-gate-and-issue-triage-session-2026-09-01] - 2026-09-01 - `2.0.0` (Commit `9a7abe6`, 730 Tests grün): das Python-Paket heißt `chemenu` statt `wiki_tools`, **das Kommando bleibt `wikitool`**. Der Import-Name eines Pakets ist ein flacher globaler Namensraum ohne Kollisionsschutz, `wiki_tools` war dafür zu generisch; @@ -264,6 +265,7 @@ ist[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. - [[Optional Instance Context File]] - [[Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31]] - [[Source - Public Release, Corpus Purge and History Squash Session 2026-09-01]] +- [[Source - Publish-Remote Gate and Issue Triage Session 2026-09-01]] ## Fußnoten @@ -277,3 +279,4 @@ ist[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. [^s-conversation-hardening-the-test-suite-against-silent-environment-dependencies-session-2026-08-31]: [[Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31]] [^s-llm-improvements-codex-analysis]: [[Source - LLM Improvements Codex Analysis]] [^s-public-release-corpus-purge-and-history-squash-session-2026-09-01]: [[Source - Public Release, Corpus Purge and History Squash Session 2026-09-01]] +[^s-publish-remote-gate-and-issue-triage-session-2026-09-01]: [[Source - Publish-Remote Gate and Issue Triage Session 2026-09-01]] diff --git a/kb/index.md b/kb/index.md index 923aef1..371b63c 100644 --- a/kb/index.md +++ b/kb/index.md @@ -13,11 +13,11 @@ The page tables live in a generated `INDEX.md` inside each collection, linked be ## Statistics -- **Total Pages:** 173 +- **Total Pages:** 175 - **Comparisons:** 1 -- **Concepts:** 78 +- **Concepts:** 79 - **Entities:** 72 -- **Sources:** 22 +- **Sources:** 23 - **Last Updated:** 2026-09-01 --- @@ -27,9 +27,9 @@ The page tables live in a generated `INDEX.md` inside each collection, linked be | Collection | Pages | Index | |------------|------:|-------| | `comparisons/` | 1 | [comparisons/INDEX.md](comparisons/INDEX.md) | -| `concepts/` | 78 | [concepts/INDEX.md](concepts/INDEX.md) | +| `concepts/` | 79 | [concepts/INDEX.md](concepts/INDEX.md) | | `entities/` | 72 | [entities/INDEX.md](entities/INDEX.md) | -| `sources/` | 22 | [sources/INDEX.md](sources/INDEX.md) | +| `sources/` | 23 | [sources/INDEX.md](sources/INDEX.md) | ### entities/ diff --git a/kb/log.md b/kb/log.md index aae25e2..8f7d6e8 100644 --- a/kb/log.md +++ b/kb/log.md @@ -61,3 +61,9 @@ Die Seite beschrieb sich als persoenliches IT-Wissenswiki; seit der Veroeffentli Source-Seite angelegt, Chemenu und wikitool aktualisiert, zwei neue Concept-Seiten (Delete Rather Than Anonymize, Dual Licensing by File Plan), quer verlinkt. --- + +## [2026-09-01] ingest | raw/notes/Conversation Transcript - Publish-Remote Gate and Issue Triage Session 2026-09-01.md + +Source-Seite angelegt, neue Concept-Seite Publish-Remote Gate, wikitool-Historie ergaenzt, quer verlinkt mit Mass-Update Gate und Chemenu. + +--- diff --git a/kb/provenance.md b/kb/provenance.md index dc6573b..d0224e1 100644 --- a/kb/provenance.md +++ b/kb/provenance.md @@ -9,8 +9,8 @@ inline `[^cite-id]` footnote). ## Coverage Summary - **Total raw files:** 24 -- **Covered:** 22 -- **Uncovered:** 2 +- **Covered:** 23 +- **Uncovered:** 1 --- @@ -87,7 +87,8 @@ No source page covers this file yet. ### `raw/notes/Conversation Transcript - Publish-Remote Gate and Issue Triage Session 2026-09-01.md` -No source page covers this file yet. +- Covered by: [[Source - Publish-Remote Gate and Issue Triage Session 2026-09-01]] + - Cited by: [[Chemenu]], [[Publish-Remote Gate]], [[wikitool]] ### `raw/notes/Conversation Transcript - Two Round-Trip Defects Found by an Ingest Session 2026-08-31.md` diff --git a/kb/sources/INDEX.md b/kb/sources/INDEX.md index 0c8890d..278fab4 100644 --- a/kb/sources/INDEX.md +++ b/kb/sources/INDEX.md @@ -2,7 +2,7 @@ # kb/sources/ - Index -22 page(s). Regenerated by `wikitool index rebuild`. +23 page(s). Regenerated by `wikitool index rebuild`. ## All @@ -29,5 +29,6 @@ | [[Source - LLM Wiki Pattern]] | article | Grundlegendes Muster für persönliche Wissensbasen mit LLMs: ein dauerhaftes Wiki schrittweise pflegen, statt es aus den Quellen neu herzuleiten. | 2026-07-26 | | [[Source - LLM Wiki v2]] | article | Erweitertes LLM-Wiki-Muster mit Praxiserfahrungen aus agentmemory zu Memory Lifecycle, Confidence Scoring, Wissensgraph und Automatisierung. | 2026-07-26 | | [[Source - Public Release, Corpus Purge and History Squash Session 2026-09-01]] | notes | Sitzung, die den Chemenu-Stack von einer privaten Testinstanz in ein oeffentliches Repo ueberfuehrt: Korpus geloescht statt anonymisiert, Git-History auf einen Commit gesquashed, AGPL-3.0/CC-BY-4.0-Dual-Lizenz gewaehlt, dist export um einen Leak-Canary gehaertet. | 2026-09-01 | +| [[Source - Publish-Remote Gate and Issue Triage Session 2026-09-01]] | notes | Sitzung, die ein drittes, Token-loses Gate fuer publish baut, instructions/private-instance.md schreibt, sechs Gitea-Issues auf den Rename und die neue Architektur nachzieht und die Actions-Run-Historie entfernen laesst. | 2026-09-01 | | [[Source - Wine]] | notes | Wine-Konfiguration für Arch Linux: pacman-NoExtract-Einstellungen und Bottles-Runtime-Optionen einschließlich Proton- und Lutris-Varianten. | 2026-08-01 | diff --git a/kb/sources/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md b/kb/sources/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md new file mode 100644 index 0000000..c2c5586 --- /dev/null +++ b/kb/sources/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md @@ -0,0 +1,71 @@ +--- +type: types/source.md +source_type: notes +author: Torben +raw_files: [raw/notes/Conversation Transcript - Publish-Remote Gate and Issue Triage Session 2026-09-01.md] +source_language: de +date: 2026-09-01 +tags: [] +entities: [Chemenu, wikitool] +concepts: [Publish-Remote Gate, Mass-Update Gate, Issue Label Scheme] +summary: Sitzung, die ein drittes, Token-loses Gate fuer publish baut, instructions/private-instance.md schreibt, sechs Gitea-Issues auf den Rename und die neue Architektur nachzieht und die Actions-Run-Historie entfernen laesst. +--- +# Source: Publish-Remote Gate and Issue Triage Session 2026-09-01 + +**Autor:** Torben +**Datum:** 2026-09-01 +**Raw-Dateien:** raw/notes/Conversation Transcript - Publish-Remote Gate and Issue Triage Session 2026-09-01.md +**Typ:** Notes + +## Zusammenfassung + +Direkte Fortsetzung der Veröffentlichungssitzung: Torben bat um eine Remote-Allowlist für +`publish`, eine Bitte, vor dem Öffentlich-Schalten von Gitea zu warten und einen Spickzettel +dafür, und ein Kurz-Howto für die lokale Dev-Umgebung - dazu, nach eigenem Ermessen, Issues zu +pflegen. Gebaut wurde das **Publish-Remote-Gate**: Es prüft die aufgelöste Push-URL (nicht den +Remote-Namen, weil ein umgebogener `origin` sonst durchrutschen würde) gegen eine optionale, +gitignorete Allowlist-Datei und hat als einziges der drei Gates keinen Freigabe-Token - der Weg +daran vorbei ist ein bewusster Edit der Datei durch den Menschen. `instructions/private-instance.md` +beschreibt seither das Clone-mit-Upstream-Setup, mit dem Gate als Schritt vor dem ersten `publish`. + +Sechs offene Issues wurden auf den Chemenu-Rename hin durchgesehen; mehrere trugen noch den +alten Paketpfad. Drei neue Issues entstanden aus Punkten, die im Tagesverlauf entschieden und +dann zurückgestellt worden waren (Handbuch-Vorbedingung, Demo-vs-Testbett-Konflikt, veraltete +Issue-Texte). Nach dem Öffentlich-Schalten wurde anonym end-to-end geprüft (Klon, Release-Feed, +Distributionsweg), `INSTALL.md` von "Repo ist privat" auf den öffentlichen Zustand umgestellt, +und auf Bitte des Nutzers die Gitea-Actions-Run-Historie über die REST-API entfernt, nachdem +sich herausstellte, dass weder das MCP-Werkzeug noch eine sichtbare UI-Schaltfläche das können. + +## Kernaussagen + +- Ein Allowlist-Gate muss die **aufgelöste Push-URL** prüfen, nicht den Remote-Namen - sonst + schützt es nicht vor einem umbenannten oder umgebogenen Remote. +- Ein Gate, dessen Frage eine stehende Eigenschaft des Checkouts ist (nicht ein einzelnes + Changeset), braucht keinen Freigabe-Token - der Mensch löst es durch einen bewussten + Datei-Edit, nie ein Agent durch einen Bypass. +- Ein Werkzeugvertrag (`tools/CONTRACT.md`) muss jeden Fehlerfall eines Kommandos nennen; ein + neuer Exit-42-Pfad, der dort fehlt, ist eine Lücke, die kein automatischer Check findet. +- Ein MCP-Server kann weniger können als die zugrunde liegende API - hier: Actions-Runs + anzeigen/erneut starten, aber nicht löschen, obwohl die REST-API die Route hat. + +## Aufgaben + +- [x] Publish-Remote-Gate, `private-instance.md`, Issue-Pflege in dieser Sitzung erledigt +- [ ] #4, #5 tragen laut #29 noch veraltete Pfade und sind noch nicht nachgezogen + +## Nicht übernommen + +- Der vollständige Wortlaut des Gitea-Spickzettels ist nicht auf diese Seite übernommen - er + steht im Transkript und in der Chat-Antwort an den Nutzer, ist aber keine dauerhafte + Wiki-Aussage, sondern eine einmalige Handlungsanweisung. + +## Verwandte Entities + +- [[Chemenu]] +- [[wikitool]] + +## Verwandte Concepts + +- [[Publish-Remote Gate]] +- [[Mass-Update Gate]] +- [[Issue Label Scheme]]