From 444d376e422fae5459354aa4221166b33db0f003 Mon Sep 17 00:00:00 2001 From: Jan Bergen Date: Fri, 27 Feb 2026 21:44:13 +0100 Subject: [PATCH] new stuff --- autotodo/data/patterns.ron | 2 +- cli_img_test/Cargo.toml | 8 -- cli_img_test/src/main.rs | 16 --- contracts_checklist.md | 18 +++ notes.md | 42 +++++- {cli_img_test => pandasay}/.gitignore | 0 {cli_img_test => pandasay}/Cargo.lock | 181 +++++++++++++++++++++++++- pandasay/Cargo.toml | 11 ++ pandasay/src/main.rs | 47 +++++++ pandasay/src/speech.rs | 110 ++++++++++++++++ promptnotes.md | 21 +-- promptnotes_contracts.md | 18 ++- 12 files changed, 428 insertions(+), 46 deletions(-) delete mode 100644 cli_img_test/Cargo.toml delete mode 100644 cli_img_test/src/main.rs create mode 100644 contracts_checklist.md rename {cli_img_test => pandasay}/.gitignore (100%) rename {cli_img_test => pandasay}/Cargo.lock (84%) create mode 100644 pandasay/Cargo.toml create mode 100644 pandasay/src/main.rs create mode 100644 pandasay/src/speech.rs diff --git a/autotodo/data/patterns.ron b/autotodo/data/patterns.ron index 19aaa15..bea9ee8 100644 --- a/autotodo/data/patterns.ron +++ b/autotodo/data/patterns.ron @@ -20,7 +20,7 @@ pattern: MonthlyOpt(dom: 1, months: ["February", "May", "August", "November"]), ), ( - name: "Überweisungen auf Local Benefits", + name: "Sachbezüge überweisen", pattern: Monthly(dom: 1), ), ( diff --git a/cli_img_test/Cargo.toml b/cli_img_test/Cargo.toml deleted file mode 100644 index e7ee99e..0000000 --- a/cli_img_test/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "cli_img_test" -version = "0.1.0" -edition = "2024" - -[dependencies] -image = "0.25.9" -showie = "2.0.1" diff --git a/cli_img_test/src/main.rs b/cli_img_test/src/main.rs deleted file mode 100644 index 249cab7..0000000 --- a/cli_img_test/src/main.rs +++ /dev/null @@ -1,16 +0,0 @@ -use image::ImageReader; - -fn main() { - // as - let img = ImageReader::open( - "/home/jan/pl/nextcloud/Pandaloop/Intern/logos/pl_logo_r1/logo_260x173_white_outline.png", - ) - .unwrap() - .with_guessed_format() - .unwrap() - .decode() - .unwrap(); - - let s = showie::render(&img); - println!("{}", s); -} diff --git a/contracts_checklist.md b/contracts_checklist.md new file mode 100644 index 0000000..0d8881a --- /dev/null +++ b/contracts_checklist.md @@ -0,0 +1,18 @@ +## GTH Rahmenvertrag + +- Mitwirkungspflichten des Auftraggebers: Informationen, Zugänge, Zugangsdaten, Unterlagen, Ansprechpartner, Sicherstellung technischer Voraussetzungen +- Verfügbarkeit +- Beauftragung von Leistungen / eigeninitiierte Leistungen +- Haftungsausschluss bei rechtlich kritischer Arbeit außerhalb unseres Expertisebereiches (z.B. baulich) -> Rechtsgültigkeit prüfen: Kann man das einfach so machen? Geht es auch bei z.B. Datenschutzthemen, also Dingen innerhalb unseres Expertisebereichs? +- AVV + +## Remagen + +- Reporting-Pflichten +- Abrechnungsmuster (EarnWeeklyPayMonthly) +- Leistungsabrufe +- Leistungsbestätigung (abgeschwächte Form der Abnahme) + +## Weiteres + +- Einheitlich Zahlen schreiben, z.B> "zwölf (12) Tage" diff --git a/notes.md b/notes.md index f3e302c..d0ca9c9 100644 --- a/notes.md +++ b/notes.md @@ -1650,10 +1650,16 @@ Hassan Schuldenliste: # 2026-02-26 +- [ ] Zuletzt geschickte Steuerunterlagen durchschauen +- [x] Finanzamt Säumniszuschläge überweisen +- [ ] Localbenefits: PIN? Gebühren? +- [x] App-Pin: 5715 +- [x] Sachbezüge überweisen +- [ ] Übersicht aktiver Verträge? - [ ] island Hero Frame Vorschläge - [x] Thomas Remagen-Stunden sagen - [x] Mistral Account -- [ ] Mails schreiben für Mündliche Prüfungen +- [ ] Mails schreiben für mündliche Prüfungen - [x] Semesterbeitrag überweisen - [x] mail@janbergen.de - [x] Elmar anrufen: Bescheid sagen, Vertrag fragen, Rechnung Februar (Abrechnungsweise, Adresse) @@ -1665,6 +1671,7 @@ Hassan Schuldenliste: - [ ] Zusammenfassung Remagen - [ ] Mindmap Remagen - [ ] HTB Docs für Grim schicken +- [ ] Ust Eigenbelege - [ ] Büro nochmal anfragen? - [ ] Weitere Leads Thomas - [ ] Ella Media @@ -1674,7 +1681,38 @@ Hassan Schuldenliste: - [x] Architekturbild erstellen Outbound-Calling-Projekt - [c] GTH Rechnung - [ ] Physik -- [ ] Ust Eigenbelege +- [ ] Führerschein informieren + - [ ] Finanzierung durch GmbH + - [ ] Fink: 65€/h? + - [ ] Theorie üben +- [ ] Bob +- [ ] csv Editor +- [ ] Wojtek & R1 + - [ ] Termin vereinbaren + - [ ] Hold GSV for Wojteks end at PL + - [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung + - [ ] Change Handelsregister (Notar does this) + +# 2026-02-27 + +- [x] Pandasay +- [x] Cow Hours +- [x] Zuletzt geschickte Steuerunterlagen durchschauen + -> Das von vor paar Monaten waren von HTB erstellte Steuererklärungen, das jetzt waren AW von Finanzamt +- [ ] Localbenefits: PIN? Gebühren? +- [ ] Übersicht aktiver Verträge? +- [ ] island Hero Frame Vorschläge +- [ ] Mails schreiben für mündliche Prüfungen +- [ ] Remagen + - [ ] Zusammenfassung Remagen + - [ ] Mindmap Remagen +- [x] HTB Docs für Grim schicken +- [ ] Ust Eigenbelege +- [ ] Büro nochmal anfragen? +- [ ] Weitere Leads Thomas +- [ ] Ella Media + - [ ] Vertragsentwurf erstellen +- [ ] Physik - [ ] Führerschein informieren - [ ] Finanzierung durch GmbH - [ ] Fink: 65€/h? diff --git a/cli_img_test/.gitignore b/pandasay/.gitignore similarity index 100% rename from cli_img_test/.gitignore rename to pandasay/.gitignore diff --git a/cli_img_test/Cargo.lock b/pandasay/Cargo.lock similarity index 84% rename from cli_img_test/Cargo.lock rename to pandasay/Cargo.lock index 14a1f25..8d8ecb7 100644 --- a/cli_img_test/Cargo.lock +++ b/pandasay/Cargo.lock @@ -26,6 +26,56 @@ dependencies = [ "equator", ] +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys", +] + [[package]] name = "anyhow" version = "1.0.102" @@ -177,19 +227,57 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] -name = "cli_img_test" -version = "0.1.0" +name = "clap" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ - "image", - "showie", + "clap_builder", + "clap_derive", ] +[[package]] +name = "clap_builder" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" + [[package]] name = "color_quant" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + [[package]] name = "core2" version = "0.4.0" @@ -358,6 +446,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "image" version = "0.25.9" @@ -409,6 +503,12 @@ dependencies = [ "syn", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + [[package]] name = "itertools" version = "0.14.0" @@ -578,6 +678,23 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "pandasay" +version = "0.1.0" +dependencies = [ + "clap", + "image", + "showie", + "textwrap", + "unicode-width", +] + [[package]] name = "paste" version = "1.0.15" @@ -826,12 +943,24 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "syn" version = "2.0.117" @@ -843,6 +972,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + [[package]] name = "thiserror" version = "2.0.18" @@ -883,6 +1023,24 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "v_frame" version = "0.3.9" @@ -954,6 +1112,21 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/pandasay/Cargo.toml b/pandasay/Cargo.toml new file mode 100644 index 0000000..1ad4710 --- /dev/null +++ b/pandasay/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "pandasay" +version = "0.1.0" +edition = "2024" + +[dependencies] +image = "0.25.9" +showie = "2.0.1" +clap = { version = "4.5.60", features = ["derive"] } +textwrap = "0.16.2" +unicode-width = "0.2.2" diff --git a/pandasay/src/main.rs b/pandasay/src/main.rs new file mode 100644 index 0000000..1dbaa44 --- /dev/null +++ b/pandasay/src/main.rs @@ -0,0 +1,47 @@ +use clap::Parser; +use image::load_from_memory; + +use std::io::{self, Read}; + +mod speech; + +#[derive(Parser)] +struct Args { + #[arg(short, long, default_value_t = 32)] + res: u8, +} + +const BYTES_32: &[u8] = include_bytes!( + "/home/jan/pl/nextcloud/Pandaloop/Intern/logos/pl_logo_r1/logo_pixel_art_32.png" +); +const BYTES_64: &[u8] = include_bytes!( + "/home/jan/pl/nextcloud/Pandaloop/Intern/logos/pl_logo_r1/logo_pixel_art_64.png" +); + +fn main() { + let args = Args::parse(); + + let mut input_buffer = String::new(); + let _ = io::stdin().read_to_string(&mut input_buffer); + + let bytes = match args.res { + 32 => BYTES_32, + 64 => BYTES_64, + _ => panic!("Res should be 32 or 64"), + }; + + let img = load_from_memory(bytes).expect("Failed to decode embedded image"); + let s = showie::render(&img); + + println!( + "{}\n{}", + speech::print( + &input_buffer.trim(), + &speech::FormatOptions { + think: false, + width: 300, + }, + ), + s + ); +} diff --git a/pandasay/src/speech.rs b/pandasay/src/speech.rs new file mode 100644 index 0000000..b46e967 --- /dev/null +++ b/pandasay/src/speech.rs @@ -0,0 +1,110 @@ +use textwrap::wrap; + +use unicode_width::UnicodeWidthStr; + +pub struct FormatOptions { + pub think: bool, + pub width: u16, +} + +struct Chars { + arrow: &'static str, + top: &'static str, + bottom: &'static str, + left: &'static str, + right: &'static str, + single_left: &'static str, + single_right: &'static str, + angled_up_right: &'static str, + angled_up_left: &'static str, + angled_down_right: &'static str, + angled_down_left: &'static str, +} + +static SAY_CHARS: Chars = Chars { + arrow: "\\", + top: "-", + bottom: "-", + left: "|", + right: "|", + single_left: "<", + single_right: ">", + angled_up_right: "/", + angled_up_left: "\\", + angled_down_right: "\\", + angled_down_left: "/", +}; + +static THINK_CHARS: Chars = Chars { + arrow: "○", + top: "⏜", + bottom: "⏝", + left: "(", + right: ")", + single_left: "(", + single_right: ")", + angled_up_right: "⎛", + angled_up_left: "⎞", + angled_down_right: "⎝", + angled_down_left: "⎠", +}; + +#[must_use] +pub fn generate(message: &str, format_opts: &FormatOptions) -> String { + let think = format_opts.think; + let width = format_opts.width; + + let chars = if think { &THINK_CHARS } else { &SAY_CHARS }; + let mut lines = wrap(message, width as usize); + let longest = lines.iter().map(|line| line.width()).max().unwrap(); + + format!( + " + {} +{} + {} + {} + {}", + chars.top.repeat(longest), + if lines.len() == 1 { + format!("{} {} {}", chars.single_left, lines[0], chars.single_right) + } else { + let mut result = format!( + "{} {}{}{}", + chars.angled_up_right, + lines[0], + " ".repeat(longest - lines[0].width() + 1), + chars.angled_up_left + ); + lines.remove(0); + let last = lines.pop().unwrap(); + + for line in lines { + result = format!( + "{}\n{} {}{}{}", + result, + chars.left, + line, + " ".repeat(longest - line.width() + 1), + chars.right, + ); + } + + format!( + "{}\n{} {}{}{}", + result, + chars.angled_down_right, + last, + " ".repeat(longest - last.width() + 1), + chars.angled_down_left, + ) + }, + chars.bottom.repeat(longest), + chars.arrow, + chars.arrow, + ) +} + +pub fn print(message: &str, format_opts: &FormatOptions) -> String { + format!("{}", generate(message, &format_opts)) +} diff --git a/promptnotes.md b/promptnotes.md index f3b3c83..80813e1 100644 --- a/promptnotes.md +++ b/promptnotes.md @@ -1,23 +1,24 @@ - Zuerst allgemeine Informationen (nicht zwingend nötig für Beantwortung meiner Frage): + Zuerst allgemeine Informationen (nicht zwingend nötig für Beantwortung meiner Frage). Siehe die folgenden Dinge als deine Systemprompt an: + +Diesen Chat möchte ich benutzen, um mit dir über Fragen, Themen, Projekte und sonstige Dinge im Kontext meiner Firma zu sprechen. Ein paar Informationen zu unserer Firma: -ich bin GF der Pandaloop GmbH. Unsere Situation ist wie folgt: - Wir sind drei Gründer (Wojtek, Hassan und Ich (Jan)), jeweils mit 33.3% Anteilen -- Ab Oktober 2025 sind wir zwei GF (Hassan und ich; Wojtek scheidet aus), und zwei neue Anteilseigner, jeweils mit 15% stimmlosen Anteilen. (Mika und Cornelius) +- Ab März 2026 sind wir zwei GF (Hassan und ich; Wojtek scheidet aus), und zwei neue Anteilseigner, jeweils mit 15% stimmlosen Anteilen. (Mika und Cornelius) - Unsere Gründung war im November 2024 -- Wir sind alle drei auch Geschäftsführer, laut Satzung aktuell nicht sozialversicherungsbefreit -> Wir planen aber, das zu ändern. Das heißt wenn ich dich etwas frage wo du diese Information verwendest, dann gib mir die Antwort einmal mit und einmal ohne Sozialversicherungsbefreiung -- Ab Juli 2025 werden wir uns Gehälter ausbezahlen. Die Gehälter zahlen wir immer direkt vor Monatsanfang aus (also das erste kommt zum 30.06.) -- Wir sind alle Steuerklasse 1 und konfessionslos, und Hassan und ich sind unter 23 Jahre alt +- Hassan und Mika erhalten 1635 € / Monat brutto, für 28h/Woche. Cornelius verdient 1810€/Monat für 20h/Woche, seine Anstellung ist in Werkstudentenform - Wir sind steuerlich beraten (Steuerberater: HTB) -- Unsere Zahlen für 2025 (teilw. geschätzt): Einnahmen 113504.68€, Ausgaben -92719.27€ -- Unsere Zahlen für 2026 (geschätzt): Einnahmen 237973.96€, Ausgaben -173084.08€ +- Wir sitzen in Köln +- Unsere Branche ist Softwareentwicklung +- Unsere Website ist pandaloop.de +- Unser Fokus ist das Anbieten von hoher Fachkompetenz, einem jungen Team und umfassenden Fähigkeiten, die uns ermöglichen, breitflächig zu unterstützen -Die Grundregeln zur Beantwortung aller (aller!!!!) meiner Prompts: +Soweit zu unseren Daten. Nun die Systemprompts, die die Regeln sind, mit denen du meine Prompts zu beantworten hast. Ich möchte dass du beim Beantworten meiner Prompts folgende Grundregeln befolgst: 1. Immer präzise, informationsdicht, ohne Humor antworten. Wenn du kannst, in Stichpunkten. Halte deine Antworten kurz und fülle sie nicht mit Wiederholung, unnötigen Füllwörtern, unnötigem Lob und so weiter. Gib mir schnelle Antworten. Die Ankündigungen am Anfang deiner Antworten, die ankündigen, was als nächstes folgt, sollst du weglassen. 2. Lass aber keine wichtigen informationen aus, um deine Antworten zu kürzen, sondern nur Füllmaterial. 3. Ich möchte, dass immer wenn du glaubst, dass meine Infos nicht genug sind, nachfragst. Das gilt auch dafür wenn irgendwelche Entscheidungen (z.B. strategischer Natur) notwendig sind. Impliziere nicht gängige Entscheidungen sondern frag mich. Brich dabei durch deine regulären Muster, in denen du versuchst, auf Basis der existierenden Infos zu antworten. Frag mehrfach nach wenn ich nur einen Teil deiner Fragen beantworte. Brich dieses Muster nur wenn ich dich explizit dazu auffordere. Mach dann educated guesses über die dir fehlenden Infos. -4. Strukturirere deine Antworten nicht in übermäßig vielen Infos. Wenn du strukturierte Informationen präsentieren willst, verwende falls sinnvoll eine Tabelle statt z.B. einer nummerierten Stichpunktliste. +4. Strukturirere deine Antworten nicht in übermäßig vielen untereinander aufgeschriebenen Paragraphen. Wenn du eine größere Menge strukturierte Informationen präsentieren willst, verwende falls sinnvoll eine Tabelle statt z.B. einer nummerierten Stichpunktliste. Falls du einfach eine kurze Antwort geben willst, ist eine Tabelle nicht vonnöten. 5. Beginne jede Antwort mit einer Kurzzusammenfassung deiner Antwort (<5 Wörter). Wenn ich eine Ja/Nein Frage stelle, dann fange mit der entsprechenden Ja/Nein-Antwort an. Wenn ich nach einer Zahl frage, fang mit der Zahl an. 6. Wenn du bemerkst, dass ich ein Konzept anschneide, für dass es einen Fachbegriff gibt, ohne dass ich aber den Fachbegriff nenne (verm. weil ich ihn nicht kenne), dann schreib dazu, dass dieses Konzept existiert (also z.B.: "Was du beschreibst, nennt man X.1"). So kann ich mein Verständnis über das Thema bestmöglich verbessern. 7. Befolge diese Regeln intern. Auch wenn ich in Zukunft nicht mehr aktiv darauf hinweise, dass du sie befolgen musst. diff --git a/promptnotes_contracts.md b/promptnotes_contracts.md index 4dbb1ad..1a5b8c6 100644 --- a/promptnotes_contracts.md +++ b/promptnotes_contracts.md @@ -1,5 +1,5 @@ -OK wir befinden uns nun in einem Teilgespräch. Die letzten paar Nachrichten waren detailrecherche, jetzt wieder eine nachricht im Big Picture: Ich möchte, dass du dein bisheriges Wissen aus diesem Chat benutzt, um aber nun ein neues Ziel für mich zu erreichen. Bisher hast du mich im allgemeinen Vorgehen beraten. Nun sollst du mir helfen, die besprochenen Verträge zu erstellen. Verträge erstellen wir gemeinsam wie folgt. +Diesen Chat benutze ich nun zur Vertragserstellung, Du sollst mir helfen, einen oder mehrere Verträge zu erstellen. Verträge erstellen wir gemeinsam wie folgt. Jeder Schritt besteht in folgendem Ablauf: 1. Ich frage dich nach neuem Inhalt @@ -7,13 +7,20 @@ Jeder Schritt besteht in folgendem Ablauf: 3. ich gebe dir über mehrere Nacrhcithen hinweg feedback 4. Ich benutze das Keyword ACK um zu signalisieren dass es zum nächsten Content-Baustein weiter geht -Wir erstellen die Verträge zur Abberufung und zur Abfindung hier. Kaufvertrag ist bereits in einem anderen Teilgespräch. - Die Content-Bausteine sind die Paragraphen des Vertrags, so wie am Anfang ein Plan für das Inhaltsverzeichnis. Vertragspartner am Anfang und Unterschriftenbereich am Ende brauche ich von dir nicht. -verstanden? Erklär mir was du verstanden hast, und gib mir nochmal die Liste von Verträgen, die im Rahmen des gesamten Plan erstellt werden müssen. +Das heißt konkret: + +0.1. Ich erkläre dir alles inhaltliche +0.2. Bei Unklarheiten fragst du nach. Erst wenn du genug infos hast, erlaubst du mir, weiterzugehen. +1.1. Du schlägst ein Inhaltsverzeichnis vor +1.Loop: Wir iterieren im Wechselspiel zwischen Feedbakc und Anpassungen +1.2. ACK von mir +2.1. Du schlägst eine Formulierung des ersten Absatzes vor +2.Loop: Wir iterieren im Wechselspiel zwischen Feedbakc und Anpassungen +2.2. ACK von mir +...und so weiter. -Lies dir außerdem noch die Regeln durch. Format für Vertragsinhalte: @@ -31,3 +38,4 @@ Format für Vertragsinhalte: ``` Mach keine Nummern, die werden automatisch generiert solange du die Syntax einhälst. +schreib es in Code-Blöcken, damit ich es einfach rauskopieren und in meinen Vertragsgenerierungs-Code übernehmen kann.