Migrate all repos into monorepo context folders

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.
This commit is contained in:
2026-06-30 20:39:52 +02:00
parent 2f2b295531
commit a5f8fb49ab
1717 changed files with 447332 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
---
name: cv-generate
description: Generates tailored CVs from knowledge base data, matched against a specific job posting.
activation: manual
---
# cv-generate
Generates tailored CVs from knowledge base data, matched against a specific job posting. Supports individual CVs and combined tandem CVs for job sharing applications. Outputs Markdown files to `output/cvs/`.
## Activation
Activated by user request with a job posting as input. Example triggers:
- "generate a CV for this job posting"
- "create a CV for [job title]"
- "apply to this position"
- "generate tandem CV for this role"
## Inputs
- **Job posting** (required): The job posting text or a file path to the posting. Used to determine which skills, experiences, and qualifications to emphasize.
- **Person ID** (optional): Which profile to generate a CV for. Defaults to the primary profile if only one exists.
- **Tandem ID** (optional): If provided, generates a full tandem application set (combined tandem CV + individual CVs for each partner).
- **Output filename prefix** (optional): Custom prefix for output files. Defaults to `<person-id>-<date>`.
## Workflow
### 1. Parse job posting
- Extract key requirements from the job posting: required skills, desired experience areas, qualifications, responsibilities, and keywords
- Identify the role title, organization, and domain for context
### 2. Load knowledge base data
- Read the target person profile from `kb/profiles/<person-id>.yaml`
- Read `kb/graph-index.yaml` to discover related entities
- Load all referenced experiences from `kb/experiences/`
- Load all referenced skills from `kb/skills/`
- Load all referenced projects from `kb/projects/`
- Load all referenced certifications from `kb/certifications/`
- Load referenced organizations from `kb/organizations/`
### 3. Select relevant content
- Use relevance selection logic (`src/cv/relevance-selection.ts`) to score and rank experiences, skills, and projects against the job posting requirements
- Select entries with non-empty intersection with posting requirements
- Order selected items by relevance: matching items appear before non-matching items
- Retain a minimal set of non-matching items for completeness where appropriate
### 4. Generate individual CV
- Apply the individual CV template (`templates/cv-individual.md`)
- Structure the CV with sections ordered by relevance to the posting
- Emphasize matching skills and experiences in descriptions
- Include only information present in the knowledge base — never fabricate content
- Write output to `output/cvs/<prefix>-individual.md`
### 5. Generate tandem CV (if tandem application)
- Load tandem entity from `kb/tandems/<tandem-id>.yaml`
- Load both partner profiles and their related entities
- Use tandem generation logic (`src/cv/tandem-generator.ts`) to produce the combined CV
- Show complementary qualifications, shared vision, and collaboration model
- Apply the tandem CV template (`templates/cv-tandem.md`)
- Write combined tandem CV to `output/cvs/<prefix>-tandem.md`
- Generate individual CVs for each partner tailored to the same posting
- Write partner CVs to `output/cvs/<prefix>-<partner-id>-individual.md`
### 6. Review and present output
- List all generated files with a brief summary of what each contains
- Highlight which skills and experiences were emphasized
- Note any gaps where the knowledge base lacked information relevant to the posting
## Output
- Individual CV: `output/cvs/<prefix>-individual.md`
- Tandem CV (if applicable): `output/cvs/<prefix>-tandem.md`
- Partner individual CVs (if tandem): `output/cvs/<prefix>-<partner-id>-individual.md`
## Rules and Constraints
1. **No fabrication** — only include information present in the knowledge base; never invent skills, experiences, or qualifications
2. **Relevance-driven ordering** — matching items always appear before non-matching items
3. **Tandem produces 3 documents** — a tandem application always generates exactly one combined tandem CV and one individual CV per partner
4. **Markdown output** — all CVs are output as Markdown suitable for conversion to PDF or DOCX
5. **Template-based** — use templates from `templates/` for consistent formatting
6. **Schema-validated sources** — only read from validated entity files in `kb/`
7. **Kebab-case output naming** — output file names use kebab-case
## Shared Modules
This skill depends on the following shared validation and utility modules:
- `src/schemas/validate.ts` — Entity validation (validate sources before generation)
- `src/schemas/types.ts` — TypeScript type definitions for all entity types
- `src/io/yaml-utils.ts` — YAML serialization/deserialization
- `src/io/entity-files.ts` — Entity file read management
## References
- `references/cv-formatting-guide.md` — formatting conventions for CV output
@@ -0,0 +1,135 @@
# CV Formatting Guide
Reference document for consistent CV formatting in generated output.
## Section Structure and Ordering
### Individual CV Sections
1. **Header** — Name, contact details, professional summary
2. **Professional Summary** — 24 sentence overview tailored to the target role
3. **Key Skills** — Grouped by category, most relevant to the posting listed first
4. **Professional Experience** — Reverse chronological, relevant roles expanded with achievements
5. **Projects** — Selected projects demonstrating relevant competencies
6. **Education** — Degrees and institutions
7. **Certifications** — Relevant certifications with issuer and date
8. **Languages** — Language proficiency levels
9. **Publications** — If applicable and relevant
### Tandem CV Sections
1. **Header** — Both partner names, "Job Sharing Tandem" label
2. **Tandem Introduction** — Shared vision and collaboration model
3. **Complementary Skills Overview** — How the partners' skills complement each other
4. **Joint Competencies** — Competencies the tandem brings together
5. **Partner A Profile** — Condensed individual profile (summary, key skills, top experiences)
6. **Partner B Profile** — Condensed individual profile (summary, key skills, top experiences)
7. **Combined Experience Timeline** — Merged chronological view of both partners' relevant experience
8. **Education & Certifications** — Combined list from both partners
## Formatting Conventions
### Dates
- Format: `MM/YYYY` (e.g., `04/2023`)
- Current/ongoing roles: `MM/YYYY present`
- Date ranges: `MM/YYYY MM/YYYY`
- Education with only years: `YYYY YYYY`
### Skills
- Group by category: Programming Languages, Frameworks, Methodologies, Soft Skills, Domain Knowledge
- Within each category, list most relevant to the posting first
- Use the skill name exactly as stored in the knowledge base
- Include skill level only when it adds value (e.g., "Python (expert)")
### Experiences
- Format: **Role Title** | Organization | Date Range
- Follow with 24 bullet points highlighting achievements and responsibilities
- Prioritize achievements that match the job posting requirements
- Use action verbs at the start of each bullet point
### Achievements
- Start with an action verb (Led, Developed, Implemented, Designed, Managed)
- Include quantifiable results where available
- Keep each bullet to one or two sentences
### Projects
- Format: **Project Name** — Brief description
- Include technologies used and outcome/impact
- Only include projects relevant to the target posting
### Certifications
- Format: **Certification Name** — Issuer, Date
- Include expiry date if applicable: `(expires MM/YYYY)`
### Languages
- Format: Language — Level (e.g., "German — Native", "English — Fluent")
## Tandem-Specific Formatting
### Tandem Header
```markdown
# [Partner A Name] & [Partner B Name]
## Job Sharing Tandem Application
### [Target Role Title]
```
### Complementary Skills Presentation
Present as a two-column comparison or paired list showing how skills complement:
```markdown
| Area | Partner A | Partner B |
|------|-----------|-----------|
| Technical Leadership | Cloud architecture, AI/ML | Data engineering, DevOps |
| Management | Strategic planning | Operational execution |
```
### Collaboration Model
Describe the working arrangement in 23 sentences covering:
- How responsibilities are divided
- Communication and handoff approach
- Availability model (e.g., split days, alternating weeks)
## Markdown Output Guidelines
### Document Structure
- Use `#` for the CV title (person name or tandem names)
- Use `##` for major sections (Professional Experience, Skills, etc.)
- Use `###` for subsections (individual roles, project entries)
- Use `---` horizontal rules to separate major sections visually
### Text Formatting
- **Bold** for role titles, company names, and section emphasis
- *Italic* for dates and supplementary context
- Unordered lists (`-`) for achievements and skill lists
- Tables for structured comparisons (tandem skills, language levels)
### Whitespace
- One blank line between sections
- No trailing whitespace
- End file with a single newline
### Metadata Block
Include a YAML front matter block at the top of each generated CV:
```markdown
---
generated: YYYY-MM-DD
person: <person-id>
posting: <brief posting identifier>
type: individual | tandem
---
```