Files
Orchestrator/privat/CV/SPEC.md
T
ankn a5f8fb49ab 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.
2026-06-30 20:39:52 +02:00

113 lines
4.8 KiB
Markdown

# SPEC.md — Personal Knowledge Base
## Purpose
A file-based personal knowledge graph that stores structured professional information in YAML, enabling tailored CV generation, interview-based knowledge collection, speaker introductions, and iterative review workflows. The file system is the database — no build step, no server, no compilation required.
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Data format | YAML (one file per entity) |
| Validation & logic | TypeScript (strict mode) |
| Testing | Vitest + fast-check (property-based) |
| Runtime | Node.js (v24+) |
| Version control | Git |
| Automation | Kiro skills (.kiro/skills/) |
## Architecture
```
project-root/
├── kb/ # Knowledge base data (YAML entities)
│ ├── profiles/ # Person profiles
│ ├── experiences/ # Work experiences
│ ├── skills/ # Skills
│ ├── organizations/ # Organizations
│ ├── projects/ # Projects
│ ├── certifications/ # Certifications
│ ├── tandems/ # Job sharing tandems
│ └── graph-index.yaml # Central entity/relationship index
├── templates/ # Document generation templates
├── output/ # Generated documents (CVs, intros)
├── sources/ # Imported source documents
├── src/ # TypeScript validation and logic
│ ├── schemas/ # Entity interfaces and validation
│ ├── io/ # YAML serialization and file I/O
│ ├── graph/ # Graph index management
│ ├── interview/ # Gap and conflict detection
│ ├── cv/ # Relevance selection and tandem generation
│ ├── intro/ # Introduction generation
│ └── review/ # Completeness scoring and prioritization
└── .kiro/skills/ # Kiro agent skills
├── interview-collect/ # Knowledge collection via interview
├── cv-generate/ # Tailored CV generation
├── talk-intro/ # Speaker introduction generation
└── kb-review/ # Knowledge base review
```
## Entity Types
- **Person** — name, contact, summary, education, languages, references to skills/experiences/certifications
- **Experience** — title, organization, dates, description, achievements, skills-used
- **Skill** — name, category, level, years, context
- **Organization** — name, industry, optional parent
- **Project** — name, description, organization, dates, skills-used, persons
- **Certification** — name, issuer, date, expires, person
- **Tandem** — exactly 2 partners, shared-vision, complementary-skills, collaboration-model
## Relationship Types
`has_skill`, `worked_at`, `collaborated_with`, `applied_for`, `partners_with`
## Kiro Skills
| Skill | Purpose |
|-------|---------|
| interview-collect | Focused interview sessions (max 10 questions) to collect/update KB data |
| cv-generate | Tailored CVs matched against job postings; supports tandem applications |
| talk-intro | Speaker introductions in 3 length variants adapted to event context |
| kb-review | Completeness scoring, staleness detection, review prioritization |
## Conventions
- File naming: kebab-case (`<entity-id>.yaml`)
- One file per entity
- Graph index updated on every entity change
- All data human-readable and diffable in Git
- TypeScript interfaces use camelCase (deserialized form of kebab-case YAML)
## Rules
1. Never fabricate content in generated documents — only use data present in the knowledge base.
2. Validate entities against schema before persisting.
3. Enforce temporal consistency (start ≤ end) for time-bound entities.
4. Create and use Kiro skills whenever a task of more than 5 lines of code runs for the second time.
## Correctness Properties
15 formal properties validated via property-based testing (fast-check):
1. Entity serialization round-trip
2. Entity schema validation
3. Temporal consistency
4. Graph index consistency
5. Tandem entity integrity
6. Interview session question limit (≤ 10)
7. Gap detection completeness
8. Conflict detection
9. CV relevance selection ordering
10. Tandem application document set (exactly 3 docs)
11. CV output validity and traceability
12. Introduction length variants (short < medium < long)
13. Completeness score calculation
14. Review prioritization ordering
15. File naming convention (kebab-case)
## Current State
- Directory structure: created
- TypeScript project: initialized, dependencies installed
- Entity interfaces: defined (src/schemas/types.ts)
- Validation, I/O, graph, skills, tests: pending implementation