# Implementation Plan: LinkedIn-Profil-Revamp ## Overview Implementierung eines neuen Kiro Skills `linkedin-profile` zur automatisierten Generierung und Optimierung von LinkedIn-Profilinhalten. Der Skill nutzt die bestehende Knowledge Base als Datenquelle und erzeugt optimierte Texte für Headline, About-Section, Experience-Beschreibungen, eine Content-Strategie sowie ein Tracking-System für LinkedIn-Metriken. Die Implementierung folgt den etablierten Mustern der bestehenden Skills (consultant-profile, cv-generate, talk-intro). ## Tasks - [x] 1. Constraint-Validator und Typen erstellen - [x] 1.1 LinkedIn-spezifische TypeScript-Interfaces in `src/linkedin/constraints.ts` definieren - `ConstraintValidation`, `ConstraintError`, `ConstraintWarning` Interfaces - Validierungsfunktionen: `validateHeadline(text)`, `validateAbout(text)`, `validateExperience(text)` - Headline-Limit: 220 Zeichen, About-Limit: 2.600 Zeichen - _Requirements: 1.3, 2.5_ - [x] 1.2 LinkedIn-Modul-Interfaces und Typen in `src/linkedin/types.ts` definieren - `HeadlineOptions`, `HeadlineResult`, `HeadlineVariant` - `AboutOptions`, `AboutResult` - `ExperienceOptions`, `ExperienceResult` - `ContentStrategyOptions`, `ContentStrategy`, `ThemeCluster`, `WeeklySlot` - `TrackingEntry`, `PostMetric`, `WeeklyReport`, `MonthlyTrend` - _Requirements: 1.1–1.5, 2.1–2.7, 3.1–3.6, 5.1–5.7, 8.1–8.7_ - [x] 1.3 Unit-Tests für Constraint-Validator schreiben - Teste Headline-Validierung (unter/über 220 Zeichen) - Teste About-Validierung (unter/über 2.600 Zeichen) - Teste Experience-Validierung - Teste Edge Cases (leere Strings, exakt am Limit) - _Requirements: 1.3, 2.5_ - [x] 2. Headline Generator implementieren - [x] 2.1 `src/linkedin/headline-generator.ts` erstellen - Funktion `generateHeadlines(options: HeadlineOptions): HeadlineResult` - KB-Entities lesen (Profile, Experiences) via `src/io/entity-files.ts` - Mehrere Varianten generieren (default: 3) - Beide Rollen (DB InfraGO + Data Hive Cassel) einbinden - Constraint-Validierung via `constraints.ts` anwenden - Keywords und differenzierende Elemente extrahieren - _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5_ - [x] 2.2 Unit-Tests für Headline Generator schreiben - Teste korrekte Extraktion beider Rollen aus KB - Teste Zeichenlimit-Einhaltung - Teste Variantengenerierung - _Requirements: 1.1–1.5_ - [x] 3. About Section Generator implementieren - [x] 3.1 `src/linkedin/about-generator.ts` erstellen - Funktion `generateAbout(options: AboutOptions): AboutResult` - KB-Entities lesen (Profile, Projects) via `src/io/entity-files.ts` - Strukturierte Sektionen: Hook, Mission, Expertise, CTA - Hook-Preview (erste 2 Zeilen) separat bereitstellen - Konkrete Belege einbinden (60+ Publikationen, 13+ Jahre KI, 50+ Projekte) - Drei Kernthemen benennen (Innovation/Technologie, Mensch/Kultur, Verantwortung) - Constraint-Validierung (max. 2.600 Zeichen) - _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7_ - [x] 3.2 Unit-Tests für About Generator schreiben - Teste Zeichenlimit-Einhaltung - Teste Vorhandensein aller Sektionen (hook, mission, expertise, cta) - Teste Hook-Preview-Extraktion - _Requirements: 2.1–2.7_ - [x] 4. Checkpoint — Kernmodule validieren - Ensure all tests pass, ask the user if questions arise. - [x] 5. Experience Generator implementieren - [x] 5.1 `src/linkedin/experience-generator.ts` erstellen - Funktion `generateExperiences(options: ExperienceOptions): ExperienceResult[]` - KB-Entities lesen (Experiences, Skills, Projects) via `src/io/entity-files.ts` - Ergebnisorientierte Beschreibungen statt Aufgabenlisten - Keywords für LinkedIn-Suche einbinden - Messbare Erfolge hervorheben (50+ Projekte, 15+ Kunden, ROI > 2) - DB InfraGO als primäre Position, Data Hive mit Gründer-Achievements - JobSharing-Experiment als Führungsinnovation positionieren - Akademische Laufbahn als KI-Expertise-Fundament - _Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6_ - [x] 5.2 Unit-Tests für Experience Generator schreiben - Teste korrekte Zuordnung von Experiences aus KB - Teste Keyword-Einbindung - Teste Ergebnis-Struktur (title, organization, description, achievements) - _Requirements: 3.1–3.6_ - [x] 6. Content Strategy Generator implementieren - [x] 6.1 `src/linkedin/content-strategy.ts` erstellen - Funktion `generateContentStrategy(options: ContentStrategyOptions): ContentStrategy` - Posting-Frequenz: 2 Beiträge/Woche - Themen-Cluster mit Gewichtung (Innovation 40%, Mensch 35%, Verantwortung 25%) - Wochenplan mit konkreten Slots - Engagement-Routine (5+ Kommentare/Woche bei Thought Leadern) - Format-Mix (Text, Carousel, Video, Newsletter) - Bestehende Formate einbinden (Podcast "Almost Intelligent", Kolumne "Kniepunkt") - _Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7_ - [x] 6.2 Unit-Tests für Content Strategy Generator schreiben - Teste Struktur des generierten Plans - Teste Themen-Cluster-Vollständigkeit - Teste Format-Mix-Abdeckung - _Requirements: 5.1–5.7_ - [ ] 7. Tracking Manager implementieren - [x] 7.1 `src/linkedin/tracking-manager.ts` erstellen - Funktion `addTrackingEntry(entry: TrackingEntry): void` - Funktion `getWeeklyReport(weekOf: string): WeeklyReport` - Funktion `getMonthlyTrend(month: string): MonthlyTrend` - YAML-Entities in `kb/tracking/` lesen/schreiben via `src/io/yaml-utils.ts` - Best-Practice-Markierung bei überdurchschnittlicher Engagement-Rate - Trend-Berechnung über Zeiträume - Empfehlungen für Content-Optimierung ableiten - _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7_ - [x] 7.2 KB-Verzeichnis `kb/tracking/` anlegen und Graph-Index erweitern - Verzeichnis `kb/tracking/` mit `.gitkeep` erstellen - Entity-Typ `linkedin-tracking` in `kb/graph-index.yaml` dokumentieren - _Requirements: 8.6_ - [-] 7.3 Unit-Tests für Tracking Manager schreiben - Teste YAML-Serialisierung/Deserialisierung von Tracking-Entries - Teste Weekly-Report-Aggregation - Teste Monthly-Trend-Berechnung - Teste Best-Practice-Markierung - _Requirements: 8.1–8.7_ - [x] 8. Checkpoint — Alle Module validieren - Ensure all tests pass, ask the user if questions arise. - [ ] 9. Kiro Skill erstellen und Module verdrahten - [-] 9.1 `SKILL.md` für linkedin-profile Skill erstellen - Datei: `.kiro/skills/linkedin-profile/SKILL.md` - Skill-Metadaten (name, description, activation: manual) - Workflow-Beschreibung: Profil-Generierung, Content-Strategie, Tracking - Inputs dokumentieren (personId, emphasis, quarter, etc.) - Outputs dokumentieren (profile-optimized.md, content-strategy.md, tracking-report.md) - Shared Modules referenzieren - Rules und Constraints definieren - Muster von `talk-intro/SKILL.md` folgen - _Requirements: 1.1–1.5, 2.1–2.7, 3.1–3.6, 4.1–4.5, 5.1–5.7, 9.1–9.6_ - [x] 9.2 Output-Verzeichnis `output/linkedin/` anlegen - Verzeichnis mit `.gitkeep` erstellen - _Requirements: 2.5, 5.7, 8.3_ - [x] 9.3 Profil-Output-Generierung verdrahten - Headline, About und Experience Generatoren zu `output/linkedin/profile-optimized.md` zusammenführen - Markdown-Template mit strukturierten Sektionen - Generierungsdatum und Validierungsstatus einbinden - _Requirements: 1.1–1.5, 2.1–2.7, 3.1–3.6_ - [x] 9.4 Content-Strategy-Output-Generierung verdrahten - Content Strategy Generator zu `output/linkedin/content-strategy.md` zusammenführen - Quartalsweise Template-Struktur - _Requirements: 5.1–5.7_ - [x] 9.5 Tracking-Report-Output-Generierung verdrahten - Tracking Manager zu `output/linkedin/tracking-report.md` zusammenführen - Wöchentliche und monatliche Reports - _Requirements: 8.1–8.7_ - [x] 10. Integration und Abschluss - [x] 10.1 Export in `src/index.ts` ergänzen - LinkedIn-Module exportieren - _Requirements: alle_ - [x] 10.2 Integrationstests schreiben - Teste End-to-End-Flow: KB lesen → Generierung → Output schreiben - Teste Constraint-Validierung im Gesamtfluss - Teste Tracking-Persistenz - _Requirements: 1.1–1.5, 2.1–2.7, 3.1–3.6, 8.1–8.7_ - [x] 11. Final Checkpoint — Alle Tests und Integration validieren - Ensure all tests pass, ask the user if questions arise. ## Notes - Tasks marked with `*` are optional and can be skipped for faster MVP - Each task references specific requirements for traceability - Checkpoints ensure incremental validation - Unit tests validate specific examples and edge cases - The design has no Correctness Properties section, so no property-based tests are included - All modules follow the existing project patterns (see `src/intro/`, `src/cv/`) - YAML conventions from `.kiro/steering/kb-conventions.md` apply to tracking entities ## Task Dependency Graph ```json { "waves": [ { "id": 0, "tasks": ["1.1", "1.2"] }, { "id": 1, "tasks": ["1.3", "2.1", "7.2", "9.2"] }, { "id": 2, "tasks": ["2.2", "3.1", "5.1", "6.1"] }, { "id": 3, "tasks": ["3.2", "5.2", "6.2", "7.1"] }, { "id": 4, "tasks": ["7.3", "9.1"] }, { "id": 5, "tasks": ["9.3", "9.4", "9.5"] }, { "id": 6, "tasks": ["10.1"] }, { "id": 7, "tasks": ["10.2"] } ] } ```