Files
chemenu/kb/concepts/decisions/Issue Label Scheme.md
T
torben 54d9540c08
CI / verify (push) Successful in 56s
Release / release (push) Successful in 36s
stack: Konfidenz-Mechanismus ersatzlos entfernt, Korpus migriert (schliesst #60, #86)
Files changed:
- .wikitool-kb.json
- AGENTS.md
- CHANGES.md
- INSTALL-MCP.md
- INSTALL.md
- README.md
- VERSION
- instructions/capture-session.md
- instructions/dev/issue-tracking.md
- instructions/german-terminology.md
- instructions/kb-profiles.md
- instructions/migrate-corpus.md
- instructions/migrations/5.0.0-confidence-removal.md
- instructions/private-instance.md
- instructions/setup-instance.md
- instructions/wiki-lint/SKILL.md
- instructions/wiki-manage/SKILL.md
- instructions/wiki-query/SKILL.md
- kb/CONTRACT.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- kb/concepts/architectures/Consolidation Tiers.md
- kb/concepts/architectures/Context Isolation.md
- kb/concepts/architectures/Cross-platform Agent Skills.md
- kb/concepts/architectures/Episodic Memory.md
- kb/concepts/architectures/Hybrid Search.md
- kb/concepts/architectures/Implementation Spectrum.md
- kb/concepts/architectures/Knowledge Graph.md
- kb/concepts/architectures/LLM Wiki Pattern.md
- kb/concepts/architectures/MCP-Leseserver.md
- kb/concepts/architectures/Memory Lifecycle.md
- kb/concepts/architectures/OKF Compatibility.md
- kb/concepts/architectures/Optional Instance Context File.md
- kb/concepts/architectures/Personalization Plane.md
- kb/concepts/architectures/Procedural Memory.md
- kb/concepts/architectures/RAG.md
- kb/concepts/architectures/Scale Ceiling.md
- kb/concepts/architectures/Semantic Memory.md
- kb/concepts/architectures/Three-Layer Architecture.md
- kb/concepts/architectures/Token Economics.md
- kb/concepts/architectures/Working Memory.md
- kb/concepts/decisions/Delete Rather Than Anonymize.md
- kb/concepts/decisions/Denylist over Allowlist.md
- kb/concepts/decisions/Diff-Reviewable Agent Edits.md
- kb/concepts/decisions/Dual Licensing by File Plan.md
- kb/concepts/decisions/Issue Label Scheme.md
- kb/concepts/decisions/KB Stack Versioning.md
- kb/concepts/decisions/Structural Enforcement over Documented Rule.md
- kb/concepts/patterns/Audit Trail.md
- kb/concepts/patterns/BM25.md
- kb/concepts/patterns/Command Round-Trip Integrity.md
- kb/concepts/patterns/Confidence Scoring.md
- kb/concepts/patterns/Contradiction Resolution.md
- kb/concepts/patterns/Entity Extraction.md
- kb/concepts/patterns/Filter on Ingest.md
- kb/concepts/patterns/Forgetting.md
- kb/concepts/patterns/Graph Traversal.md
- kb/concepts/patterns/Mesh Sync.md
- kb/concepts/patterns/Quality Scoring.md
- kb/concepts/patterns/Reciprocal Rank Fusion.md
- kb/concepts/patterns/Self-Healing.md
- kb/concepts/patterns/Shared vs Private.md
- kb/concepts/patterns/Typed Relationships.md
- kb/concepts/patterns/Vector Search.md
- kb/concepts/patterns/Work Coordination.md
- kb/concepts/problems/Ambient Environment Dependency.md
- kb/concepts/problems/Detect-Repair Asymmetry.md
- kb/concepts/problems/Green Suite Blind Spot.md
- kb/concepts/problems/Naming Convention Conflict.md
- kb/concepts/problems/Write-Once Frontmatter Fields.md
- kb/concepts/protocols/CPPC.md
- kb/concepts/protocols/Modbus.md
- kb/concepts/protocols/SSD TRIM.md
- kb/concepts/workflows/Anti-Cramming Heuristic.md
- kb/concepts/workflows/Bulk Operations.md
- kb/concepts/workflows/CI Integration.md
- kb/concepts/workflows/Checkpoint Audit.md
- kb/concepts/workflows/Claude Code Auto Mode.md
- kb/concepts/workflows/Content Quality Control.md
- kb/concepts/workflows/Crystallization.md
- kb/concepts/workflows/Event-Driven Automation.md
- kb/concepts/workflows/Hooks.md
- kb/concepts/workflows/Index Scaling.md
- kb/concepts/workflows/Iteration and Cost Limits.md
- kb/concepts/workflows/KB Migration.md
- kb/concepts/workflows/Knowledge Compounding.md
- kb/concepts/workflows/Lint Workflow.md
- kb/concepts/workflows/Mass-Update Gate.md
- kb/concepts/workflows/Multi-Agent Collaboration.md
- kb/concepts/workflows/Privacy and Governance.md
- kb/concepts/workflows/Publish-Remote Gate.md
- kb/concepts/workflows/Quality and Self-Correction.md
- kb/concepts/workflows/Semantic Lint Automation.md
- kb/concepts/workflows/Session Orientation.md
- kb/concepts/workflows/Split Merge Reclassify.md
- kb/concepts/workflows/Split Threshold.md
- kb/concepts/workflows/Stub Threshold.md
- kb/concepts/workflows/Supersession.md
- kb/concepts/workflows/User Management.md
- kb/concepts/workflows/Workflow Extraction.md
- kb/concepts/workflows/Workflow Orchestration.md
- kb/entities/people/Andrej Karpathy.md
- kb/entities/people/E3DC GmbH.md
- kb/entities/people/Rohit Gupta.md
- kb/entities/people/Vannevar Bush.md
- kb/entities/projects/BCDModule.md
- kb/entities/projects/Chemenu.md
- kb/entities/projects/andybalholm-edl.md
- kb/entities/projects/goresponsiveness.md
- kb/entities/projects/ha-core.md
- kb/entities/projects/hacs-e3dc.md
- kb/entities/projects/hacs-integration-blueprint.md
- kb/entities/projects/llm-wiki-skills.md
- kb/entities/projects/plugnburn-edl.md
- kb/entities/projects/wiki-skills-vanillaflava.md
- kb/entities/projects/wiki-skills.md
- kb/entities/systems/AGENTS.md.md
- kb/entities/systems/CLAUDE.md.md
- kb/entities/systems/E3DC.md
- kb/entities/systems/ENVIRONMENT.md.md
- kb/entities/systems/Memex.md
- kb/entities/systems/Tolkien Gateway.md
- kb/entities/technologies/Arch Linux.md
- kb/entities/technologies/Disk Encryption.md
- kb/entities/technologies/Docker.md
- kb/entities/technologies/GRUB.md
- kb/entities/technologies/Gitea Actions.md
- kb/entities/technologies/Gitea.md
- kb/entities/technologies/Go.md
- kb/entities/technologies/Home Assistant.md
- kb/entities/technologies/Kernel PM Governors.md
- kb/entities/technologies/LVM.md
- kb/entities/technologies/Linux Kernel.md
- kb/entities/technologies/MQTT.md
- kb/entities/technologies/OPC UA.md
- kb/entities/technologies/Python.md
- kb/entities/technologies/Rust.md
- kb/entities/technologies/Wine GE.md
- kb/entities/technologies/Wine-Staging.md
- kb/entities/technologies/acpi-cpufreq.md
- kb/entities/technologies/amd-pstate.md
- kb/entities/technologies/iii Engine.md
- kb/entities/tools/AUR.md
- kb/entities/tools/Act Runner.md
- kb/entities/tools/Agent Memory.md
- kb/entities/tools/Aura.md
- kb/entities/tools/Bottles.md
- kb/entities/tools/ChatGPT.md
- kb/entities/tools/Claude Code.md
- kb/entities/tools/Codex CLI.md
- kb/entities/tools/Dataview.md
- kb/entities/tools/GPG.md
- kb/entities/tools/GitHub Copilot.md
- kb/entities/tools/Gitea MCP Server.md
- kb/entities/tools/Lutris.md
- kb/entities/tools/Marp.md
- kb/entities/tools/Mistral Vibe.md
- kb/entities/tools/NotebookLM.md
- kb/entities/tools/Obsidian Web Clipper.md
- kb/entities/tools/Obsidian.md
- kb/entities/tools/OpenAI Codex.md
- kb/entities/tools/OpenCode.md
- kb/entities/tools/Pi.md
- kb/entities/tools/Proton.md
- kb/entities/tools/Steam.md
- kb/entities/tools/Wine.md
- kb/entities/tools/awesome-llm-wiki.md
- kb/entities/tools/farzaa gist.md
- kb/entities/tools/gdeploy.md
- kb/entities/tools/makepkg.md
- kb/entities/tools/pascalandy schema.md
- kb/entities/tools/qmd.md
- kb/entities/tools/wikitool.md
- kb/index.md
- kb/log.md
- raw/CONTRACT.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/api.py
- tools/chemenu/cli.py
- tools/chemenu/commands/confidence_decay.py
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/commands/doctor.py
- tools/chemenu/commands/index_build.py
- tools/chemenu/commands/new_page.py
- tools/chemenu/commands/search.py
- tools/chemenu/commands/touch.py
- tools/chemenu/commands/version_cmd.py
- tools/chemenu/conventions.py
- tools/chemenu/corpus_diff.py
- tools/chemenu/frontmatter_io.py
- tools/chemenu/lint_core.py
- tools/chemenu/mcp/server.py
- tools/chemenu/page.py
- tools/chemenu/search/base.py
- tools/chemenu/search/filters.py
- tools/chemenu/search/ripgrep.py
- tools/chemenu/search/service.py
- tools/chemenu/search/types.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/test_api.py
- tools/chemenu/tests/test_confidence_decay.py
- tools/chemenu/tests/test_corpus_diff.py
- tools/chemenu/tests/test_docs_verify.py
- tools/chemenu/tests/test_frontmatter_io.py
- tools/chemenu/tests/test_index_build.py
- tools/chemenu/tests/test_kb_scan.py
- tools/chemenu/tests/test_lint.py
- tools/chemenu/tests/test_mcp_server.py
- tools/chemenu/tests/test_new_page.py
- tools/chemenu/tests/test_page_ops.py
- tools/chemenu/tests/test_provenance.py
- tools/chemenu/tests/test_raw_cmd.py
- tools/chemenu/tests/test_search.py
- tools/chemenu/tests/test_touch.py
- tools/chemenu/tests/test_type_resolver.py
- tools/chemenu/tests/test_version_cmd.py
- tools/chemenu/tests/test_xref.py
- tools/chemenu/version.py
- types/concept.md
- types/concept.schema.yaml
- types/entity.md
- types/entity.schema.yaml
- types/instruction.md
- types/type-spec.md
2026-09-10 19:51:48 +02:00

12 KiB

type, concept_type, tags, created, modified, related, sources, provenance, summary
type concept_type tags created modified related sources provenance summary
types/concept.md decision
issues
gitea
triage
labels
backlog
2026-08-31 2026-09-04
operates-on
Chemenu
mechanism
Gitea MCP Server
see-also
KB Stack Versioning
see-also
Detect-Repair Asymmetry
Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31
Source - Gitea Issue 41 - Issue Management and Label Scheme 2026-09-02
Source - Gitea Issues 62-63 - status-incoming Label Introduction 2026-09-04
sourced Pflicht-Labelschema fuer das Gitea-Board: vier Achsen (area/kind/prio/size) plus seit 2026-09-04 drei optionale status/-Flags, darunter status/incoming fuer unausgearbeitete Stubs, die die Vier-Achsen-Pflicht aussetzen statt sie zu ergaenzen; die Regel liegt in instructions/dev/, weil sie keine ausgelieferte Instanz erreichen darf

Issue Label Scheme

Typ: Decision

Definition

Issue Label Scheme ist die Entscheidung, offene Arbeit an diesem Stack ausschließlich als Gitea-Issues zu führen und jedes offene Issue mit vier Pflicht-Labels zu versehen: einem Bereich area/, einer Art kind/, einer Priorität prio/ und einer Größe size/. Dazu kommen drei optionale status/-Flags. Getroffen wurde die Entscheidung in dieser Form am 2026-09-021 ; sie ersetzt das zweiachsige Schema vom 2026-08-31 (siehe Historie). Am 2026-09-04 kam das dritte status/-Flag, status/incoming, dazu2 .

area/ Bedeutung
area/kb kb/-Schema, Contract, Confidence, Lint - die Wissensbasis als System.
area/distribution Auslieferung, Upgrade und Versionierung einer Instanz.
area/corpus Inhalt und Umfang von kb/ in dieser Instanz, samt Demo-/Testbett-Frage.
area/workflow Git, Merge, Branching, Publish, PRs.
area/process Der Entwicklungsprozess selbst, nicht der Stack als Artefakt.
kind/ Bedeutung
kind/decision Wartet auf eine Betreiberentscheidung.
kind/build Spezifiziert, wartet nur noch auf Umsetzungszeit.
kind/defect Befund: Doku und Realität, oder zwei Dokus, widersprechen sich.
prio/ Bedeutung
prio/blocking Blockiert oder beschädigt laufende Arbeit. Als Nächstes.
prio/planned Sammelt Zinsen. Eingeplant.
prio/waiting Lohnend, wartet auf einen benannten Auslöser.
size/ Bedeutung
size/S Eine Sitzung, ein Publish, ein klarer Schnitt.
size/M Mehrere Dateien; eine Contract- oder Instruction-Änderung; eigener Testaufwand.
size/L Mehrere Sitzungen, oder offene Entwurfsfragen vor dem ersten Commit.
status/ (optional) Bedeutung
status/blocked Wartet auf ein anderes, noch offenes Issue - unabhängig vom prio-Wert nicht eigenständig bearbeitbar.
status/unconfirmed Gemeldeter Verdacht, noch nicht gegen tatsächliches Verhalten geprüft; size und prio sind solange vorläufig.
status/incoming Vom Menschen angelegter Stub - unvollständig, ohne Abnahmekriterien, ohne die vier Pflichtachsen. Wird nie so umgesetzt, wie er dasteht: erst Ausarbeitung und Triage gegen den Baum, dann Umsetzung2 .

Siebzehn Labels stehen in Gitea; prio/1, prio/2, prio/3 und size/XS existieren nicht mehr1 .

Kernpunkte

  • Vier Achsen sind Pflicht, weil ihre Pflege maschinell läuft. Der ursprüngliche Einwand gegen eine dritte Achse war der Aufwand für einen einzelnen menschlichen Betreuer. Da Body-Rewrites und Labelpflege über eine LLM-Sitzung laufen und ein Mensch in der Regel nur Metadaten anfasst, trägt dieser Einwand nicht mehr1 .
  • Der Issue-Body ist die aktuelle Wahrheit, nicht der Ursprungstext. Die Umsetzung eines Issues zieht sich über mehrere, zeitlich getrennte Sitzungen, und der Body ist das einzige, was sie verbindet: eine Sitzung muss allein aus ihm rekonstruieren können, was entschieden und was offen ist. Er wird deshalb umgeschrieben statt ergänzt1 .
  • Ein Kommentar ist ein Changelog, keine Kopie. Ein Volltext-Snapshot des alten Bodys pro Revision zwingt einen Menschen zum Diffen zweier Fließtexte und ist damit keine lesbare Historie, sondern nur eine weitere Kopie1 .
  • area/ folgt der Systemgrenze, nicht dem Codeort. Die Werte folgen der Stufenteilung aus AGENTS.md. Ein area/tools gibt es bewusst nicht - Tooling wird nach der Domäne einsortiert, die es bedient1 .
  • kind/ darf sich im Lauf eines Issues ändern. Der Wechsel von decision zu build, sobald entschieden ist, ist erwünschtes Session-Memory-Verhalten und kein Makel1 .
  • Eine Priorität ohne Kosten ist eine halbe Entscheidung. Größe ist Aufwand und nicht Wichtigkeit, deshalb ist prio/blocking size/S das Beste, was auf einem Board stehen kann, und prio/waiting size/L etwas, worüber gesprochen wird, bevor jemand anfängt.
  • prio/waiting ist kein Friedhof. Der Auslöser muss im Issue benannt sein, sonst ist das Label ein höfliches Nein3 .
  • Kein unbelegter Verdacht bleibt offen liegen. Die Triage eines status/unconfirmed endet entweder mit entferntem Flag und verbindlichen size/prio-Werten oder mit einem geschlossenen Issue samt Begründung - die Prozessentsprechung zu Invariante 3 des Stacks1 .
  • Priorisiert wird nach Schaden, nicht nach Aufwand. Das Kriterium der ersten Triage lautete: was blockiert oder beschädigt laufende Arbeit. Ein Werkzeugfehler, der seinen Benutzer gegen eine Invariante des Stacks drückt, rangiert deshalb vor einer fehlenden Fähigkeit, so gut das Issue dazu auch geschrieben ist.
  • Ein Issue ohne Abnahmekriterium ist kein Arbeitspaket. Beim Portieren der Recherche-Notiz nach Issue #15 wurden Abnahmekriterien ergänzt, weil die Prosa-Notiz keine hatte3 .
  • TODO.md wurde gelöscht statt gepflegt. Ihr erster Abschnitt war ohnehin nur noch eine Linkliste auf Issues; der zweite, die Recherche-Notiz, ging vollständig nach #15. Danach gab es nichts mehr in der Datei, was nicht auf Gitea stand.
  • status/incoming setzt die Vier-Achsen-Pflicht aus, statt sie zu qualifizieren. Bei den beiden älteren status/-Flags gelten area/, kind/, prio/ und size/ weiterhin zusätzlich; unter status/incoming sind sie nicht fällig, solange der Stub nicht ausgearbeitet ist. Ein Stub auf Sicht durchzulabeln wäre der Fehler, nicht das Weglassen2 .

Historie

Das ursprüngliche Schema vom 2026-08-31 hatte genau zwei Pflicht-Labels, prio/1..3 und size/XS..L, und verzichtete ausdrücklich auf eine dritte Achse: Art, Bereich oder Status wurden verworfen als der Punkt, ab dem eine Taxonomie eigene Pflege braucht, und das Board habe einen einzigen Betreuer. Sieben Labels wurden angelegt und auf alle zehn zu dem Zeitpunkt offenen Issues angewandt3 .

Was sich am 2026-09-02 geändert hat:

Achse Vorher Jetzt
prio/ 1, 2, 3 blocking, planned, waiting - reine Umbenennung, Bedeutung unverändert
size/ XS, S, M, L S, M, L - XS entfällt, die übrigen unverändert
area/ - fünf Werte, neu
kind/ - drei Werte, neu
status/ - zwei optionale Flags, neu

Der Verzicht auf die dritte Achse fiel damit weg, nicht weil die Begründung falsch war, sondern weil ihre Voraussetzung entfallen ist: gepflegt wird das Board nicht mehr von Hand.

Was sich am 2026-09-04 zusätzlich geändert hat2 :

Achse Vorher Jetzt
status/ zwei optionale Flags drittes Flag status/incoming dazu - setzt, anders als die anderen beiden, die Vier-Achsen-Pflicht aus statt sie zu ergänzen

Wo die Regel liegt

Die Platzierung war die tragende Entscheidung, nicht das Schema selbst. README.md und AGENTS.md gehen in jede über wikitool dist export ausgelieferte Instanz, und eine solche Instanz hat kein Issue-Board auf gitea.nehmer.net. Eine dort mitgelieferte Label-Regel wäre eine Anweisung ins Leere.

instructions/dev/ ist der einzige Ort, der beides ist: von Agenten lesbar und nie ausgeliefert, weil dist export das Verzeichnis vollständig ausschließt. Das Schema steht deshalb in instructions/dev/issue-tracking.md und ist aus Schritt 2 des stack-dev-Skills verlinkt3 .

Aus demselben Grund war der Release ein PATCH (1.2.1) und kein MINOR: für eine bestehende Instanz ändert sich nichts. Das CI-Versions-Gate verlangte den Bump trotzdem, weil sein Muster auf instructions/ passt und instructions/dev/ darunter liegt3 . Siehe KB Stack Versioning.

Für die Erweiterung auf vier Achsen galt dieselbe Rechnung noch einmal: sie ging als 4.0.1 und damit ebenfalls als PATCH hinaus1 . Für das dritte status/-Flag ein drittes Mal: 4.7.5-beta.1, ebenfalls PATCH2 .

Beispiele

  • Chemenu - das Repository, dessen Board nach dem Schema geführt wird; siebzehn Labels stehen dort, verteilt auf vier Pflicht- und eine optionale Familie
  • Gitea MCP Server - der Weg, auf dem Issues und Labels gelesen und geschrieben werden
  • Detect-Repair Asymmetry - Issue #14 ist der Fall, den dieses Concept beschreibt, und trug in der ersten Triage prio/2 size/S, nach der Umbenennung also prio/planned size/S

Wann zu verwenden

  • Auf einem Board mit einem einzigen menschlichen Betreuer, dessen Labelpflege maschinell läuft. Erst das macht mehr als zwei Achsen bezahlbar.
  • Sobald offene Arbeit sonst in Prosa-Dateien wandert, die niemand als Board liest und die gegen den Tracker driften.
  • Sobald die Bearbeitung eines Issues sich über mehrere, zeitlich getrennte Sitzungen zieht - dann trägt die Body-als-Wahrheit-Konvention den Kontext, den sonst ein Mensch jedes Mal neu erzählen müsste.

Wann NICHT zu verwenden

  • Nicht dort, wo Labels von Hand gepflegt werden. Dann ist die ursprüngliche Zweiachsigkeit die tragfähigere Wahl, und die Begründung von 2026-08-31 gilt unverändert.
  • Nicht als Ersatz für die Abnahmekriterien im Issue-Text. Die Labels ordnen ein Issue ein; ob es fertig ist, sagen sie nicht.
  • Nicht mit umgeschriebenen Bodys dort, wo mehrere Menschen denselben Thread lesen und den Verlauf brauchen. Die Konvention tauscht Historie gegen Aktualität und setzt voraus, dass der Changelog-Kommentar als Historie genügt.
  • Nicht in einer ausgelieferten Instanz. Das Schema beschreibt das Entwicklungs-Repository und hat außerhalb davon keinen Gegenstand.

Beziehungen

Fußnoten