Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
200 lines
9.3 KiB
Markdown
200 lines
9.3 KiB
Markdown
# 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"] }
|
||
]
|
||
}
|
||
```
|