Eingangsordner input/ und Skill sn-einlesen (#5)
- input/ ist lokal und nicht versioniert (.gitignore); scripts/einlesen.py legt ihn bei Bedarf an. - scripts/einlesen.py ordnet jede Datei ein: abgelehnt (kein .md, nicht UTF-8, leer, Unterordner), neu, geändert, eingelesen. Für neue und geänderte Dateien: Prozessname, Ordnernamen-Vorschlag, ob schon eine Arbeitsschritt-.md, und ähnliche Prozesse aus prozesse/ und entwuerfe/. „vermerk“ schreibt nach Erfolg eine erste Zeile <!-- eingelesen: <Zeitstempel> | neu|aktualisiert | <Ziel> | inhalt: <sha> -->; die Prüfsumme erkennt spätere Änderungen. Zeilenenden bleiben erhalten. - Skill sn-einlesen: Übersicht, Bestandsvergleich, Entscheidung des Nutzers, neue Prozesse durch sn-bpmn, Vermerk nur bei Erfolg. - docs/leitfaden/07_prozesse_einlesen.md: Ablauf für neue Nutzer. - AGENTS.md, README, Leitfaden 03, Skill sn-bpmn, Fallstricke, STATUS. - Tests: python -m pytest -q -> 79 bestanden (18 neu in tests/test_einlesen.py). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
| `leitfaden/03_arbeitsweise.md` | stabil | Einstieg, Arbeitszyklus, Checklisten |
|
||||
| `leitfaden/04_werkzeuge_einrichten.md` | stabil | Einrichtung: Claude Code als CLI und in VS Code; von null zur ersten Aufgabe |
|
||||
| `leitfaden/05_git_arbeitsweise.md` | **verbindlich** | Branches, Pull Requests, was der Agent darf |
|
||||
| `leitfaden/07_prozesse_einlesen.md` | stabil | Einsteiger-Ablauf: Beschreibung in `input/` legen, einlesen, freigeben |
|
||||
| `vorlagen/` | Vorlagen | Issue, PR, Übergabe, Repo-`AGENTS.md`, Steckbrief eines Prozesses |
|
||||
|
||||
Die Fachdoku des Konverters (Markdown-Syntax, Elementkatalog, Modellierregeln) liegt beim Skill in
|
||||
|
||||
@@ -12,8 +12,8 @@ Einrichtung Schritt für Schritt: `04_werkzeuge_einrichten.md`.
|
||||
| **Einen Prozess modellieren** | Fachleute | Skill `sn-bpmn` | BPMN-Datei für PICTURE |
|
||||
| **Werkzeug und Wissen verbessern** | alle, die einen PR stellen | Skill `sn-aufgabe-bearbeiten` | Pull Request auf `main` |
|
||||
|
||||
Wer nur modelliert, braucht Git kaum: Claude Code im Ordner `AG_Prozesse` starten, Quelle nennen, Entwurf prüfen,
|
||||
umwandeln. Git und Pull Requests kommen erst ins Spiel, wenn sich am Konverter, an den Regeln oder an der Doku
|
||||
Wer nur modelliert, braucht Git kaum: Beschreibung als `.md` nach `input/` legen, Claude Code im Ordner
|
||||
`AG_Prozesse` starten, „Lies den Ordner input ein“, Entwurf prüfen, umwandeln (`07_prozesse_einlesen.md`). Git und Pull Requests kommen erst ins Spiel, wenn sich am Konverter, an den Regeln oder an der Doku
|
||||
etwas ändern soll — oder wenn ein Modell unter `prozesse/` abgelegt oder geändert wird (Abschnitt 2).
|
||||
|
||||
## 2. Einen Prozess modellieren
|
||||
@@ -99,6 +99,7 @@ Werkzeugs (Claude Auto-Memory) ist ein Notizzettel; teilbares Wissen gehört in
|
||||
| `.claude/settings.json` | Berechtigungen – sperrt `git push`, `merge`, `tag` |
|
||||
| `docs/` | auf Abruf, nicht automatisch |
|
||||
| `prozesse/` | auf Abruf; versionierte Modelle mit Steckbrief |
|
||||
| `input/` | beim Einlesen (Skill `sn-einlesen`); nicht versioniert |
|
||||
| `referenz/`, `entwuerfe/` | nur, wenn du darauf verweist; nicht versioniert |
|
||||
| `CLAUDE.local.md` | ja, lokal, nicht versioniert |
|
||||
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
# Prozesse einlesen: vom Eingangsordner zum BPMN-Diagramm
|
||||
|
||||
Für Kolleginnen und Kollegen, die eine Prozessbeschreibung in ein BPMN-Modell für PICTURE überführen wollen.
|
||||
Git- oder Programmierkenntnisse braucht es dafür nicht. Stand 23.09.2026.
|
||||
|
||||
**Kurz:** Beschreibung als `.md`-Datei in den Ordner `input/` legen, Claude Code starten, „Lies den Ordner input
|
||||
ein“ sagen, die Rückfragen beantworten, den Entwurf prüfen und freigeben. Fertig ist eine `.bpmn`-Datei für PICTURE.
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["Beschreibung als .md<br/>nach input/ legen"] --> B["Claude Code: „Lies input ein“"]
|
||||
B --> C{"Dateityp .md<br/>und UTF-8?"}
|
||||
C -->|nein| X["abgelehnt – Datei bleibt liegen,<br/>Grund wird genannt"]
|
||||
C -->|ja| D{"schon eingelesen<br/>und unverändert?"}
|
||||
D -->|ja| Y["übersprungen"]
|
||||
D -->|nein| E{"gibt es den Prozess<br/>schon?"}
|
||||
E -->|nein| F["neuer Prozess:<br/>Entwurf in entwuerfe/"]
|
||||
E -->|ja| G{"deine Entscheidung"}
|
||||
G -->|aktualisieren| H["vorhandenen Prozess<br/>ergänzen"]
|
||||
G -->|eigener Prozess| F
|
||||
G -->|überspringen| Z["kein Vermerk,<br/>kommt beim nächsten Mal wieder"]
|
||||
F --> I["Entwurf prüfen,<br/>Vorschau ansehen"]
|
||||
H --> I
|
||||
I -->|"„passt so“"| J["BPMN erzeugen"]
|
||||
J --> K["Vermerk mit Datum/Uhrzeit<br/>oben in der .md"]
|
||||
```
|
||||
|
||||
## 1. Einmalig: Einrichtung
|
||||
|
||||
Wer schon mit Claude Code im Ordner `AG_Prozesse` arbeitet, kann diesen Abschnitt überspringen. Sonst:
|
||||
[`04_werkzeuge_einrichten.md`](04_werkzeuge_einrichten.md) Abschnitte 2 und 3 (Git, Python, Projektwissen holen,
|
||||
Claude Code). Danach gibt es den Ordner `AG_Prozesse`; `input/` darin entsteht beim ersten Einlesen von selbst.
|
||||
|
||||
`input/` wird **nicht** mit Git geteilt. Was dort liegt, sieht nur, wer an deinem Rechner arbeitet.
|
||||
|
||||
## 2. Die Datei vorbereiten
|
||||
|
||||
**Vorerst werden nur `.md`-Dateien angenommen** (Markdown, also reiner Text). Word-, PDF- oder `.txt`-Dateien
|
||||
werden abgelehnt und bleiben unverändert liegen.
|
||||
|
||||
So wird aus einer Word- oder PDF-Beschreibung eine `.md`-Datei:
|
||||
|
||||
1. In VS Code (oder dem Windows-Editor) eine neue Datei anlegen.
|
||||
2. Den Text der Beschreibung hineinkopieren. Überschriften dürfen mit `# ` beginnen, Aufzählungen mit `- `.
|
||||
Die erste Überschrift oder eine Zeile `Prozess: <Name>` wird als Prozessname verwendet.
|
||||
3. Speichern unter `AG_Prozesse\input\<kurzer-name>.md`, **Codierung UTF-8** (VS Code speichert so; im Windows-Editor
|
||||
unter „Speichern unter“ → Codierung „UTF-8“ wählen). Sonst werden Umlaute nicht gelesen und die Datei abgelehnt.
|
||||
|
||||
Vorher prüfen und entfernen: **Namen von Personen, Aktenzeichen, Verfahrensdaten.** Zuständigkeiten als Funktion
|
||||
schreiben („Sachbearbeitung“, „Teamleitung“). Der Inhalt wird zur Verarbeitung an den KI-Anbieter übertragen.
|
||||
|
||||
Wer die Syntax schon kennt, kann direkt eine Arbeitsschritt-`.md` schreiben
|
||||
(`.agents/skills/sn-bpmn/Anleitung.md`). Sie wird dann nur geprüft und nicht neu formuliert.
|
||||
|
||||
## 3. Einlesen starten
|
||||
|
||||
Im Ordner `AG_Prozesse` Claude Code starten (Terminal: `claude`, oder VS Code mit der Erweiterung) und schreiben:
|
||||
|
||||
> *Lies den Ordner input ein.*
|
||||
|
||||
(oder den Befehl `/sn-einlesen` wählen). Der Agent zeigt zuerst eine Übersicht, zum Beispiel:
|
||||
|
||||
```
|
||||
[neu] input/antragspruefung.md: „Antragsprüfung im Sachgebiet“ (Rohtext)
|
||||
ähnlich (0.44): Entwurf (lokal) entwuerfe/antrag-pruefen.md – „Antrag prüfen“
|
||||
[abgelehnt] input/vorlage.docx: Dateityp .docx – vorerst nur .md
|
||||
[eingelesen] input/wegebau.md: am 2026-09-20 10:12:03 +0200 (neu -> entwuerfe/wegebau-abnehmen.md)
|
||||
```
|
||||
|
||||
Dieselbe Übersicht bekommst du ohne Agent mit `python scripts/einlesen.py`.
|
||||
|
||||
## 4. Entscheiden: Gibt es den Prozess schon?
|
||||
|
||||
Für jede neue Datei sucht der Agent im Bestand – versionierte Prozesse unter `prozesse/` und deine lokalen Entwürfe
|
||||
unter `entwuerfe/` – und sagt, ob und warum ein vorhandener Prozess passt. Gibt es einen, fragt er dich:
|
||||
|
||||
| Wenn du wählst … | … passiert |
|
||||
|---|---|
|
||||
| **Vorhandenen Prozess aktualisieren** | Der vorhandene Entwurf bzw. Prozess wird um die neuen Inhalte ergänzt. Bei Prozessen unter `prozesse/` geht das über ein Issue und einen Pull Request (Abschnitt 7). |
|
||||
| **Als neuen Prozess anlegen** | Es entsteht ein eigener Entwurf mit anderem Namen. |
|
||||
| **Datei überspringen** | Nichts passiert. Die Datei erscheint beim nächsten Einlesen wieder. |
|
||||
| **Einlesen beenden** | Der Agent hört auf; die übrigen Dateien bleiben unberührt. |
|
||||
|
||||
Gibt es keinen passenden Prozess, legt der Agent einen neuen Entwurf an und schlägt einen Namen vor. Du kannst
|
||||
ihn ändern.
|
||||
|
||||
## 5. Entwurf prüfen und freigeben
|
||||
|
||||
Der Agent schreibt den Entwurf nach `entwuerfe/<name>.md` und nennt die Stellen, an denen er etwas **annehmen**
|
||||
musste (Schrittgrenzen, Verzweigungen, Zuständigkeiten). Genau dort lohnt der fachliche Blick.
|
||||
|
||||
- Als Diagramm ansehen: `python scripts/vorschau.py entwuerfe/<name>.md` – öffnet den Browser, offline.
|
||||
- Änderungen direkt in `entwuerfe/<name>.md` machen oder dem Agenten sagen, was anders sein soll.
|
||||
- Wenn es passt: *„passt so, wandle um“*. **Vorher wandelt der Agent nicht um.**
|
||||
|
||||
Danach liegt `entwuerfe/<name>.bpmn` bereit für den Import in PICTURE.
|
||||
|
||||
## 6. Der Vermerk
|
||||
|
||||
Nach erfolgreichem Einlesen steht in der ersten Zeile deiner Datei in `input/` ein Vermerk, zum Beispiel:
|
||||
|
||||
```
|
||||
<!-- eingelesen: 2026-09-23 14:05:12 +0200 | neu | entwuerfe/antrag-pruefen.md | inhalt: 3f2a9c1e0b7d -->
|
||||
```
|
||||
|
||||
Datum und Uhrzeit, Ergebnis (`neu` oder `aktualisiert`) und wo das Ergebnis liegt. In der Markdown-Vorschau ist die
|
||||
Zeile unsichtbar, im Editor sichtbar. Bitte nicht von Hand ändern.
|
||||
|
||||
- **Unveränderte Dateien mit Vermerk** werden beim nächsten Einlesen übersprungen.
|
||||
- **Änderst du die Datei danach**, erkennt das der Agent (Prüfsumme) und bietet sie als „geändert“ erneut an.
|
||||
Der neue Vermerk kommt obenauf, der alte bleibt als Verlauf stehen.
|
||||
- **Kein Vermerk** bei Überspringen, Abbruch oder wenn der Entwurf nicht freigegeben wurde.
|
||||
|
||||
## 7. Für alle sichtbar ablegen (optional)
|
||||
|
||||
Entwürfe liegen nur auf deinem Rechner. Soll das Modell für die Gruppe verfügbar sein, legt der Agent es auf
|
||||
Wunsch unter `prozesse/<name>/` ab – mit Steckbrief und Status `Entwurf` (Regeln: `prozesse/README.md`). Das ist
|
||||
eine Änderung am gemeinsamen Repository:
|
||||
|
||||
1. Der Agent bereitet einen Issue-Text vor; **du** legst das Issue in Gitea an und nennst ihm die Nummer.
|
||||
2. Der Agent legt den Ordner auf einem eigenen Branch an und bereitet Commit und Pull-Request-Text vor.
|
||||
3. **Du** pushst und stellst den Pull Request; eine Kollegin oder ein Kollege prüft.
|
||||
|
||||
## 8. Häufige Fragen
|
||||
|
||||
**Meine Word-Datei wird abgelehnt.** Vorerst nur `.md`, siehe Abschnitt 2.
|
||||
|
||||
**„keine UTF-8-Datei“.** Die Datei in VS Code öffnen, unten rechts auf die Codierung klicken → „Mit Codierung
|
||||
speichern“ → UTF-8.
|
||||
|
||||
**Die Datei wird immer wieder als neu angezeigt.** Sie wurde übersprungen oder nicht freigegeben – dann gibt es
|
||||
keinen Vermerk. Einlesen erneut starten und abschließen, oder die Datei aus `input/` entfernen, wenn sie nicht
|
||||
mehr gebraucht wird.
|
||||
|
||||
**Der Agent hält zwei Prozesse für gleich, die es nicht sind.** Die Ähnlichkeit ist nur ein Hinweis. „Als neuen
|
||||
Prozess anlegen“ wählen und einen unterscheidbaren Namen vergeben.
|
||||
|
||||
**Ich möchte eine Datei noch einmal komplett neu einlesen.** Die Vermerkzeilen oben löschen; dann gilt sie wieder
|
||||
als neu.
|
||||
|
||||
**Kann ich mehrere Dateien auf einmal einlesen?** Ja, sie liegen alle in `input/`. Der Agent bearbeitet sie
|
||||
nacheinander und fragt bei jeder einzeln.
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- Skill `sn-einlesen` (`.agents/skills/sn-einlesen/SKILL.md`) – was der Agent genau tut
|
||||
- Skill `sn-bpmn` und `.agents/skills/sn-bpmn/Anleitung.md` – Entwurf und Syntax
|
||||
- [`03_arbeitsweise.md`](03_arbeitsweise.md) – Arbeitsweise insgesamt
|
||||
- `prozesse/README.md` – versionierte Ablage
|
||||
@@ -30,6 +30,10 @@ Skills sind übernommen, alles QGIS- und Plugin-Spezifische ist entfernt. Kern i
|
||||
|
||||
## Erledigt
|
||||
|
||||
- 23.09.2026 **Eingangsordner `input/` und Skill `sn-einlesen`** (#5): `.md`-Dateien werden geprüft (andere
|
||||
Typen vorerst abgelehnt), mit dem Bestand verglichen, nach Entscheidung des Nutzers durch `sn-bpmn` geführt und
|
||||
bei Erfolg mit Zeitstempel vermerkt. Einsteiger-Ablauf: `docs/leitfaden/07_prozesse_einlesen.md`.
|
||||
|
||||
- 23.09.2026 **Regeln für PR- und Issue-Texte an AG_QGIS angeglichen:** Vertragsabschnitt in der PR-Vorlage
|
||||
(„Änderungen an Syntax und Ablageformat“), Vertragsfrage in der Issue-Vorlage, Testpflicht wieder für jede neue
|
||||
Funktionalität, vollständige Checklisten, kein Arbeitsbranch ohne Issue. `gitea.py` meldet ein nicht öffentliches
|
||||
|
||||
@@ -17,6 +17,12 @@ Kurz, konkret, mit Datum und Quelle. Neue Einträge oben in der passenden Rubrik
|
||||
Umwandlung ihrer `.md`. Nach einer Konverteränderung `python scripts/pruefe_prozesse.py --erzeugen` ausführen und
|
||||
die neu erzeugten Dateien mit in den Pull Request nehmen. Das setzt voraus, dass der Konverter deterministisch
|
||||
bleibt: keine Zufalls-IDs, keine Zeitstempel, keine Reihenfolge aus `set`-Iteration. (ADR 0003, 23.09.2026)
|
||||
- **Zusätzliche Zeilen in einer Arbeitsschritt-`.md` nur ganz oben oder mit `#`.** `parse_markdown()` bricht
|
||||
nach dem ersten Schritt bei jeder unbekannten Zeile ab; davor überspringt es Zeilen, die nicht wie
|
||||
`Schlüssel: Wert` aussehen. Deshalb steht der Einlese-Vermerk (`<!-- eingelesen: … -->`) als erste Zeile.
|
||||
(23.09.2026, `scripts/einlesen.py`)
|
||||
- **`Path.read_text()` macht aus CRLF stillschweigend LF.** Wer eine Datei liest und mit Zusatz zurückschreibt,
|
||||
stellt so Windows-Dateien unbemerkt um. `scripts/einlesen.py` liest deshalb als Bytes. (23.09.2026, Test)
|
||||
- **Metadaten gehören nicht als Kopfzeile in die Arbeitsschritt-`.md`.** `parse_markdown()` liest eine Zeile wie
|
||||
`Verantwortliche Stelle: …` als Schritt mit ID `Verantwortliche` und Typ `Stelle` und bricht ab. Status und Stand
|
||||
stehen deshalb im Steckbrief `README.md` des Prozessordners. (23.09.2026)
|
||||
|
||||
Reference in New Issue
Block a user