GitPKM is a plain-text Personal Knowledge Management system that combines:
- Markdown for narrative notes
- CSV for relational data
- Python scripts for automation
- Git/GitHub for history and sync
The project is model-first:
- Define the data model (entities, relationships, ID rules).
- Define the workflow (generation, indexing, validation).
- Apply the same model and workflow to any repository.
- Quickstart
- CLI
- Data-Model-and-IDs
- Schema-Contract
- Automation-and-Validation
- Automation config: see schema/automation.json
- Example automation config: see schema/automation.example.json
- Import mappings: see schema/import_mappings
- Publishing-Safety
- Operational-Conventions
- User-facing docs are in the project wiki: gitpkm wiki
- Internal AI context and full design notes live in _instructions.md
- Release notes are tracked in CHANGELOG.md
- License is defined in LICENSE
- Plain text first: Markdown + CSV
- Stable descriptive IDs as the source of truth
- Exact dataset names are part of the contract; the tooling does not singularize or pluralize them
- Separation of concerns: structured data vs narrative notes
- Safe automation using generated markers to avoid overwriting manual text
data/ # CSV tables (source of truth)
notes/ # Markdown entity notes and indexes
scripts/ # generation, indexing, validation scripts
schema/ # schema documentation
notebooks/ # optional analysis
pkm.wiki/ # user-facing documentation