Files
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

4.8 KiB

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