feat(i2s-persona): extract from monolith
Step 6 of i2s-skill-split refactor. Third atomic sub-skill. Contents: - SKILL.md: 5 numbered phases with precondition check (## Problem-Statement required, > 100 chars). description scoped to Persona/JTBD/Gains triggers with explicit anti-triggers. - workflows/persona.md: full 5-step workflow with 5 TAs + anti-patterns + facilitation heuristics (git mv from monolith, required_reading paths updated). - references/kommunikationsregeln.md: curated extract (persona-specific dialog heuristics: stereotype-vs-segment, JTBD-contains-solution, demografie-ohne-verhalten). - references/persona-format.md: curated extract from plugin-shared/export-formate.md, persona_format block. Includes filled example (Anna Berger, 38, Leipzig). Tools: Read, Write, Edit, Glob, Grep, AskUserQuestion, TodoRead, TodoWrite. No WebFetch/WebSearch (inline-recherche limited to berufsbezeichnungen / lebensstil — full recherche lives in i2s-recherche).
This commit is contained in:
@@ -0,0 +1,124 @@
|
|||||||
|
---
|
||||||
|
name: i2s-persona
|
||||||
|
description: "Idea2Self Persona-Workflow. Erstellt eine verhaltensbasierte Zielgruppen-Persona (JTBD + Gains, nicht nur Demografie) in 5 Teilaspekten (Lebenswelt, Werte, Aufgaben, Gewinne, Ergaenzungen) und schreibt sie in die idea2self-Datei. Loest aus bei 'Persona erstellen', 'Zielgruppe definieren', 'verhaltensbasierte Persona', 'JTBD fuer Idea2Self', 'Gains und Aufgaben', 'wer ist die Zielgruppe konkret'. NICHT aktivieren bei: 'Idea2Self starten' (Router), 'Problem-Statement erstellen' (i2s-problem-statement), 'vage Idee strukturieren' (i2s-discovery), wenn ## Problem-Statement noch fehlt. Vorbedingung: idea2self-Datei mit ausgefuellter ## Idee und ## Problem-Statement Sektion. Output: ## Persona Sektion in derselben Datei. Sprache: Deutsch."
|
||||||
|
allowed-tools: Read Write Edit Glob Grep AskUserQuestion TodoRead TodoWrite
|
||||||
|
---
|
||||||
|
|
||||||
|
# i2s-persona — Verhaltensbasierte Persona
|
||||||
|
|
||||||
|
Schritt 3 im Idea2Self-Prozess. Wandelt das HMW-Statement plus Idee in eine konkrete, verhaltensbasierte Persona — keine demografische Hochrechnung, sondern eine Arbeitshypothese mit Jobs-to-be-Done und Gains.
|
||||||
|
|
||||||
|
## Essential Principles
|
||||||
|
|
||||||
|
1. **Verhaltensbasiert, nicht demografisch.** Eine Persona ist "wie verhaelt sie sich", nicht "wer sie ist". Demografie liefert Anker, JTBD und Gains liefern Handlungsbasis.
|
||||||
|
2. **Eine Person, kein Segment.** Eine konkrete Anker-Person (Name, Alter, Wohnsituation), nicht Aggregat-Daten. Hypothese, klar als solche markiert.
|
||||||
|
3. **JTBD ist Aufgabe, nicht Loesung.** "Ich will mein Werkzeug ausleihen ohne App-Account zu machen" ist ein Job. "Ich will deine Tauschboerse nutzen" ist nicht.
|
||||||
|
4. **Konsistenz zum Problem-Statement.** Wenn die Persona-Eigenschaften dem PS widersprechen (andere Werte, andere Lebenswelt), ist das ein Signal fuer Rueckwaerts-Update — nicht fuer kreative Verbiegung.
|
||||||
|
5. **Belastbare Arbeitshypothese > perfektes Profil.** Wir formulieren v0.1. Recherche und Interviews ueberarbeiten in v0.2.
|
||||||
|
|
||||||
|
## When to Use
|
||||||
|
|
||||||
|
- `## Idee` UND `## Problem-Statement` existieren in idea2self-Datei, `## Persona` fehlt oder soll iteriert werden.
|
||||||
|
- Aus Router-Hand-off (Pfad 3) oder direkter Trigger ("Persona erstellen", "Zielgruppe definieren").
|
||||||
|
- Iteration nach Recherche: v0.2 nach neuen Daten aus i2s-recherche.
|
||||||
|
|
||||||
|
## When NOT to Use
|
||||||
|
|
||||||
|
- `## Problem-Statement` fehlt -> erst `i2s-problem-statement`.
|
||||||
|
- Nutzer will Marktrecherche / Wettbewerbsanalyse -> `i2s-recherche`.
|
||||||
|
- Nutzer will den Loesungs-Ansatz schaerfen -> `i2s-prototyp-konzept`.
|
||||||
|
|
||||||
|
## Precondition Check
|
||||||
|
|
||||||
|
**Vor Phase 1:**
|
||||||
|
1. idea2self-Datei laden.
|
||||||
|
2. Auf `^## Problem-Statement` matchen + Sektion-Inhalt > 100 Zeichen.
|
||||||
|
3. Fehlt -> abbrechen mit Hinweis: "`## Problem-Statement` fehlt. Trigger zuerst `i2s-problem-statement`."
|
||||||
|
|
||||||
|
## Phases
|
||||||
|
|
||||||
|
### Phase 1 — Kontext laden + Voranalyse
|
||||||
|
|
||||||
|
**Entry:** Vorbedingung erfuellt.
|
||||||
|
|
||||||
|
**Aktionen:**
|
||||||
|
1. Aus `## Idee` und `## Problem-Statement` extrahieren: Zielgruppen-Beschreibung, Anker-Person (falls vorhanden), Beduerfnis.
|
||||||
|
2. Nutzer Voranalyse zeigen: "Aus deinem PS lese ich: Zielgruppe = [X], Beduerfnis = [Y]. Ich gehe jetzt 5 Teilaspekte mit dir durch. [1] von 5."
|
||||||
|
3. Wenn `## Persona` bereits existiert: Aenderungsmodus aktivieren.
|
||||||
|
|
||||||
|
**Exit:** Voranalyse bestaetigt oder korrigiert.
|
||||||
|
|
||||||
|
### Phase 2 — 5 Teilaspekte (gefuehrte Fragen)
|
||||||
|
|
||||||
|
**Entry:** Phase 1 abgeschlossen.
|
||||||
|
|
||||||
|
**Aktionen:**
|
||||||
|
1. TA1 LEBENSWELT (Demografie + Verhalten im Alltag).
|
||||||
|
2. TA2 WERTE (Glaubenssaetze, innere Spannungen).
|
||||||
|
3. TA3 AUFGABEN (3 vorausgewaehlte JTBD-Leitfragen praesentieren — passen, austauschen, anpassen).
|
||||||
|
4. TA4 GEWINNE (3 vorausgewaehlte Gains-Leitfragen analog).
|
||||||
|
5. TA5 ERGAENZUNGEN (was macht diese Persona einzigartig).
|
||||||
|
6. Anti-Pattern-Detection (Stereotyp, JTBD als Loesung, zu viele Merkmale, Widerspruch zu PS).
|
||||||
|
7. Inline-Recherche nur fuer Berufsbezeichnungen / Lebensstil-Begriffe. NICHT Zielgruppen-Studien (gehoert in `i2s-recherche`).
|
||||||
|
|
||||||
|
**Exit:** Alle 5 TAs beruehrt + Anti-Patterns geprueft.
|
||||||
|
|
||||||
|
### Phase 3 — Konsistenzpruefung
|
||||||
|
|
||||||
|
**Entry:** 5 TAs durch.
|
||||||
|
|
||||||
|
**Aktionen:**
|
||||||
|
1. Verhaltensbasiert (nicht nur Demografie)? Wenn nicht: TA1/TA2 vertiefen.
|
||||||
|
2. JTBD und Gains als Hypothesen formuliert (nicht als Fakten)? Wenn nicht: `_(Vorschlag)_` / `_(Annahme)_` ergaenzen.
|
||||||
|
3. Widerspricht etwas dem `## Problem-Statement`? Wenn ja: Rueckwaerts-Update anbieten (PS aktualisieren).
|
||||||
|
|
||||||
|
**Exit:** Keine offenen Konsistenz-Konflikte.
|
||||||
|
|
||||||
|
### Phase 4 — Drei Varianten erzeugen
|
||||||
|
|
||||||
|
**Entry:** Phase 3 abgeschlossen.
|
||||||
|
|
||||||
|
**Aktionen:**
|
||||||
|
1. Variante A (wortgetreu): nah am Dialog, offene Punkte sichtbar.
|
||||||
|
2. Variante B (geschaerft): JTBD/Gains klarer, KI-Verdichtungen als `_(Vorschlag)_`.
|
||||||
|
3. Variante C (zugespitzt): Annahmen-arm, Fokus auf Loesbarkeit / Wichtigkeit / Erreichbarkeit.
|
||||||
|
4. Drei Varianten zeigen, Nutzer waehlt oder kombiniert.
|
||||||
|
5. Max. 1 Iteration nach Auswahl.
|
||||||
|
|
||||||
|
**Exit:** Eine finale Persona-Variante ist gewaehlt.
|
||||||
|
|
||||||
|
### Phase 5 — Export
|
||||||
|
|
||||||
|
**Entry:** Phase 4 abgeschlossen.
|
||||||
|
|
||||||
|
**Aktionen:**
|
||||||
|
1. `## Persona` Sektion in idea2self-Datei schreiben (Schema: `references/persona-format.md`).
|
||||||
|
2. PS-Kontext-Import mit `_(Aus Problem-Statement uebernommen)_` markieren.
|
||||||
|
3. Versions-Header (V1 fuer Erstellung).
|
||||||
|
4. Changelog-Eintrag: `[Datum] Persona V<n> formuliert / iteriert.`
|
||||||
|
5. Hand-off: "Persona ist in der Datei. Naechster Schritt: Problemraum-Recherche. Trigger: 'Problemraum recherchieren' fuer `i2s-recherche`. Oder 'Weiter'."
|
||||||
|
|
||||||
|
**Exit:** Datei aktualisiert, Hand-off ausgesprochen.
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
Kommunikation: `references/kommunikationsregeln.md`.
|
||||||
|
Format-Schema: `references/persona-format.md`.
|
||||||
|
Workflow-Detail: `workflows/persona.md`.
|
||||||
|
|
||||||
|
## Reference Index
|
||||||
|
|
||||||
|
| File | Purpose |
|
||||||
|
|------|---------|
|
||||||
|
| `workflows/persona.md` | Vollstaendiger 5-Schritt-Ablauf mit 5 TAs + Anti-Patterns + Facilitation-Heuristiken |
|
||||||
|
| `references/kommunikationsregeln.md` | Tonalitaet, Marker, Steuerbefehle, Persona-spezifische Dialog-Heuristiken (curated) |
|
||||||
|
| `references/persona-format.md` | Markdown-Schema fuer `## Persona` (Persona-Profil-Tabelle + JTBD + Gains + Kontext) |
|
||||||
|
|
||||||
|
## Success Criteria
|
||||||
|
|
||||||
|
- [ ] Persona ist verhaltensbasiert (nicht nur Demografie).
|
||||||
|
- [ ] JTBD und Gains sind als Hypothesen formuliert (mit `_(Vorschlag)_` / `_(Annahme)_` markiert).
|
||||||
|
- [ ] Anker-Person ist konkret (Name, Alter, Wohnsituation).
|
||||||
|
- [ ] Persona passt zum `## Problem-Statement` (keine offenen Widersprueche).
|
||||||
|
- [ ] idea2self-Datei enthaelt `## Persona` mit Versions-Header + Changelog-Eintrag.
|
||||||
|
- [ ] Hand-off zu `i2s-recherche` ist ausgesprochen.
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# Kommunikationsregeln — i2s-persona (curated extract)
|
||||||
|
|
||||||
|
Curated from `plugin-shared/kommunikationsregeln.md`. Persona-Workflow-relevante Regeln.
|
||||||
|
|
||||||
|
<tonality>
|
||||||
|
Nuechtern, sachlich, ruhig. Keine motivierenden Formulierungen, keine Emojis, keine Superlative. Alltagssprache statt Fachbegriffe. Sprache des Nutzers beibehalten. Kurze Saetze.
|
||||||
|
</tonality>
|
||||||
|
|
||||||
|
<message_format>
|
||||||
|
- Max. 3-4 Saetze pro Nachricht im Dialog.
|
||||||
|
- Fortschrittsanzeige: "[X] von 5" bei jeder TA-Frage.
|
||||||
|
- Bei JTBD/Gains: 3 vorausgewaehlte Leitfragen als Block, Nutzer waehlt/aendert.
|
||||||
|
- Bei Varianten-Phase: 3 Bloecke (A/B/C) klar abgegrenzt zeigen.
|
||||||
|
</message_format>
|
||||||
|
|
||||||
|
<kennzeichnung>
|
||||||
|
| Marker | Bedeutung |
|
||||||
|
|--------|-----------|
|
||||||
|
| _(Vorschlag)_ | KI-generiert, nicht bestaetigt — z.B. JTBD-Leitfrage |
|
||||||
|
| _(Annahme)_ | Vom Nutzer geaeussert ohne Datengrundlage |
|
||||||
|
| _(Aus Problem-Statement uebernommen)_ | Import aus PS-Sektion |
|
||||||
|
</kennzeichnung>
|
||||||
|
|
||||||
|
<steuerbefehle>
|
||||||
|
| Befehl | Aktion |
|
||||||
|
|--------|--------|
|
||||||
|
| Zurueck | Vorheriger Teilaspekt |
|
||||||
|
| Ich weiss es nicht | Plausibler Vorschlag, kein Drang |
|
||||||
|
| Ueberspringen | TA als "Nicht erarbeitet" markieren |
|
||||||
|
| Weiter | Naechster TA oder Phase |
|
||||||
|
| Variante A/B/C | In Phase 4: Auswahl der Variante |
|
||||||
|
</steuerbefehle>
|
||||||
|
|
||||||
|
<dialog_heuristiken_persona>
|
||||||
|
- **Stereotyp statt Segment:** "Klingt nach einem Klischee. Welches konkrete Verhalten unterscheidet diese Persona von einem Stereotyp?"
|
||||||
|
- **JTBD enthaelt Loesung:** "Die Aufgabe lautet [X mit deiner Loesung]. Was waere die Aufgabe OHNE deine Loesung?"
|
||||||
|
- **Zu viele Merkmale:** "5-7 Merkmale reichen fuer v0.1. Welche sind die wichtigsten?"
|
||||||
|
- **Persona widerspricht Problem-Statement:** explizit benennen. "Im PS steht [A], hier sagst du [B]. Soll das PS angepasst werden?"
|
||||||
|
- **Demografie ohne Verhalten:** "Was tut diese Person _konkret_, das fuer dein Problem relevant ist?"
|
||||||
|
- **Fehlende Anker-Person:** "Gib der Persona einen Namen + Alter + Wohnsituation. Das macht es testbar."
|
||||||
|
- **Perfektionismus:** "v0.1 reicht. Interviews ueberarbeiten in v0.2."
|
||||||
|
</dialog_heuristiken_persona>
|
||||||
|
|
||||||
|
<facilitation_heuristiken>
|
||||||
|
- Lieber **belastbare Arbeitshypothese** als perfektes Profil.
|
||||||
|
- **Spontane, greifbare Formulierungen** statt vager Allgemeinplaetze.
|
||||||
|
- Fehlende Infos als **plausible Vorschlaege**, klar als `_(Vorschlag)_` markieren.
|
||||||
|
- Inline-Recherche **nur** fuer Berufsbezeichnungen, Lebensstil-Begriffe, Verhaltensmerkmale. **Nicht** fuer Zielgruppen-Studien oder Orte (die gehoeren in `i2s-recherche`).
|
||||||
|
</facilitation_heuristiken>
|
||||||
|
|
||||||
|
<export_rule>
|
||||||
|
Phase 5 schreibt `## Persona` Sektion + Versions-Header + Changelog-Eintrag. Schema: `references/persona-format.md`. PS-Imports mit `_(Aus Problem-Statement uebernommen)_` markieren. Vorschlaege als `_(Vorschlag)_` belassen, bis Nutzer bestaetigt.
|
||||||
|
</export_rule>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Master version:** `plugin-shared/kommunikationsregeln.md`. Drift-check via `plugin-shared/drift-check.sh`.
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
# Persona-Format — i2s-persona (curated extract)
|
||||||
|
|
||||||
|
Curated from `plugin-shared/export-formate.md` — `<persona_format>` block.
|
||||||
|
|
||||||
|
## Schema fuer `## Persona` Sektion
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Zielgruppen-Persona
|
||||||
|
|
||||||
|
_Version [V1/V2/...] vom [Datum]_
|
||||||
|
_Vorgaengerversion: [V<n-1> vom <Datum>] / Keine - Neuerstellung_
|
||||||
|
|
||||||
|
### Persona-Profil
|
||||||
|
|
||||||
|
| Merkmal | Auspraegung |
|
||||||
|
|---------|-----------|
|
||||||
|
| Name | [Name] |
|
||||||
|
| Geschlecht | [Geschlecht] |
|
||||||
|
| Alter | [Alter] |
|
||||||
|
| Wohnort & Wohnsituation | [Beschreibung] |
|
||||||
|
| Familienstand | [Beschreibung] |
|
||||||
|
| Bildung / Beruf | [Beschreibung] |
|
||||||
|
| Einkommens-/Budget-Indikation | [grob] |
|
||||||
|
| Mediennutzung / Tools | [Beschreibung] |
|
||||||
|
| Mobilitaet | [Beschreibung] |
|
||||||
|
|
||||||
|
### Werte & Glaubenssaetze
|
||||||
|
- **Wert 1:** [Beschreibung]
|
||||||
|
- **Wert 2:** [Beschreibung]
|
||||||
|
- **Wert 3:** [Beschreibung]
|
||||||
|
- **Typischer Glaubenssatz:** _([Zitat-Form])_
|
||||||
|
- **Innere Spannung:** [Beschreibung]
|
||||||
|
|
||||||
|
### Jobs-to-be-Done (Aufgaben)
|
||||||
|
- **[JTBD-Frage 1]:** [Hypothesen-Antwort]
|
||||||
|
- **[JTBD-Frage 2]:** [Hypothesen-Antwort]
|
||||||
|
- **[JTBD-Frage 3]:** [Hypothesen-Antwort]
|
||||||
|
|
||||||
|
### Gains (Gewinne)
|
||||||
|
- **[Gains-Frage 1]:** [Hypothesen-Antwort]
|
||||||
|
- **[Gains-Frage 2]:** [Hypothesen-Antwort]
|
||||||
|
- **[Gains-Frage 3]:** [Hypothesen-Antwort]
|
||||||
|
|
||||||
|
### Kontext
|
||||||
|
**Lebenswelt:** [Zusammenfassung aus TA1]
|
||||||
|
**Psychografie & Verhalten:** [Zusammenfassung aus TA2]
|
||||||
|
**Problemverstaendnis:** _(Aus Problem-Statement uebernommen)_
|
||||||
|
|
||||||
|
### Offene Punkte
|
||||||
|
- [ ] [Nur wenn geparkte Gedanken aus dem Persona-Workflow vorhanden]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schreibregeln
|
||||||
|
|
||||||
|
1. **Versions-Header** mit Vorgaengerversion-Referenz.
|
||||||
|
2. **Anker-Person ist Pflicht.** Name + Alter + Wohnsituation muessen ausgefuellt sein, alles andere darf "Nicht erarbeitet" bleiben.
|
||||||
|
3. **JTBD und Gains:** jeweils 3 Eintraege. Wenn Nutzer weniger geliefert hat, restliche als `_(Vorschlag)_` ergaenzen oder explizit "Nicht erarbeitet".
|
||||||
|
4. **Hypothesen-Antworten** als Fliesstext, max 2 Saetze. Mit `_(Annahme)_` wenn ohne Datengrundlage.
|
||||||
|
5. **PS-Import** im Kontext-Block mit `_(Aus Problem-Statement uebernommen)_`.
|
||||||
|
6. **Innere Spannung** ist optional aber wertvoll — wenn Nutzer eine genannt hat, festhalten.
|
||||||
|
|
||||||
|
## Beispiel (gefuellt, V1)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Zielgruppen-Persona
|
||||||
|
|
||||||
|
_Version V1 vom 2026-05-19_
|
||||||
|
_Vorgaengerversion: Keine - Neuerstellung_
|
||||||
|
|
||||||
|
### Persona-Profil
|
||||||
|
|
||||||
|
| Merkmal | Auspraegung |
|
||||||
|
|---------|-----------|
|
||||||
|
| Name | Anna Berger |
|
||||||
|
| Geschlecht | weiblich |
|
||||||
|
| Alter | 38 |
|
||||||
|
| Wohnort & Wohnsituation | Leipzig-Suedvorstadt, Altbau-Mietwohnung in 12-Parteien-Haus |
|
||||||
|
| Familienstand | Lebensgemeinschaft, 1 Kind (7) |
|
||||||
|
| Bildung / Beruf | Studium Soziale Arbeit, Teilzeit-Sozialarbeiterin |
|
||||||
|
| Einkommens-/Budget-Indikation | mittel, sparsam |
|
||||||
|
| Mediennutzung / Tools | Whatsapp, Instagram passiv, kein Twitter, Smartphone-pflichtmuede |
|
||||||
|
| Mobilitaet | Fahrrad, OePNV; kein Auto |
|
||||||
|
|
||||||
|
### Werte & Glaubenssaetze
|
||||||
|
- **Wert 1:** Ressourcen teilen statt kaufen.
|
||||||
|
- **Wert 2:** Echter Kontakt im Wohnumfeld.
|
||||||
|
- **Wert 3:** Skepsis gegenueber neuen Apps und Plattformen.
|
||||||
|
- **Typischer Glaubenssatz:** _(„Fuer alles 'ne App, aber niemand spricht mehr miteinander.")_
|
||||||
|
- **Innere Spannung:** Will Nachbarn kennen, scheut aber den ersten Schritt aktiv anzusprechen.
|
||||||
|
|
||||||
|
### Jobs-to-be-Done (Aufgaben)
|
||||||
|
- **Wenn ich ein Werkzeug brauche, das ich selten benutze, wie komme ich daran?** Heute: kaufen oder verzichten. Sie wuerde gern erst fragen. _(Annahme)_
|
||||||
|
- **Wenn ich etwas anbieten will, wie kommuniziere ich das?** Heute: keine Loesung. Whatsapp-Gruppe existiert nicht im Haus. _(Annahme)_
|
||||||
|
- **Wie verhindere ich, dass ich als aufdringlich gelte?** Niedrigschwelliger Erstkontakt — schriftlich, ohne Druck.
|
||||||
|
|
||||||
|
### Gains (Gewinne)
|
||||||
|
- **Was wuerde Anna die Werkzeug-Frage erleichtern?** Eine sichtbare Tafel im Hausflur, ohne Account. _(Vorschlag)_
|
||||||
|
- **Was wuerde Annas Nachbarschafts-Gefuehl staerken?** Wenn 3+ Gegenstaende im Monat erfolgreich getauscht werden.
|
||||||
|
- **Was waere ein verzichtbarer Aufwand?** App-Download, Registrierung, Profil-Pflege.
|
||||||
|
|
||||||
|
### Kontext
|
||||||
|
**Lebenswelt:** Stadtviertel mit lebendiger Strassenkultur, aber im Haus untereinander wenig Kontakt. Hausverwaltung hat nichts dergleichen organisiert.
|
||||||
|
**Psychografie & Verhalten:** Wertet Niederschwelligkeit hoeher als Funktions-Reichtum. Wenig Geduld fuer App-Onboarding.
|
||||||
|
**Problemverstaendnis:** _(Aus Problem-Statement uebernommen)_ — Niedrige Nutzung lokaler Tauschmoeglichkeiten in 8-30-Parteien-Mehrfamilienhaeusern, App-Aversion.
|
||||||
|
|
||||||
|
### Offene Punkte
|
||||||
|
- [ ] Hausverwaltungs-Rolle: aktiver Distributor oder nur Erlaubniserteilung?
|
||||||
|
- [ ] Schwellenangst-Aspekt explizit in Interviews validieren.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Master version:** `plugin-shared/export-formate.md`. Drift-check via `plugin-shared/drift-check.sh`.
|
||||||
Reference in New Issue
Block a user