| name | superme-db |
| description | Use when reading, writing, validating or repairing entries in the superme personal database at ~/Desktop/SUPERME/db — entity schema questions, frontmatter errors, "superme index" failures, or looking up what superme knows about a person, document or project. |
superme-db
One markdown file per entity. Flat YAML frontmatter, prose below. Hand-editable
by design — the user reads and edits these directly.
db/identity/ people/ documents/ affiliations/ projects/ outputs/ todos/
db/_index/ derived JSON, disposable, rebuilt by `superme index`
Frontmatter dialect
A deliberately flat subset, parsed without PyYAML so it works on system python:
key: scalar
key: [a, b, c]
key: null
key: "value with: a colon"
Nesting is rejected, loudly. An indented line raises rather than being
silently dropped — a silently dropped expires: is a missed deadline.
Types and required fields
| Type | Required |
|---|
identity document affiliation project output | id type title |
person | id type name |
todo | id type title lane thread |
Date fields (expires deadline issued opened) must be YYYY-MM-DD or
validation fails.
Fields that do work
expires: on a document generates a deadline automatically within a
90-day horizon. The document is the todo — do not also hand-write one.
status: of expired superseded replaced archived void
cancelled retires a document so it stops generating deadlines. Set this when
a certificate is renewed, or the old one nags forever.
file: points at where the real document lives. superme references; it
does not copy documents into the data folder.
Repair
superme index
superme status
A single broken file never takes down a run — load_db collects errors and
carries on. Fix the reported file, re-run superme index.
Writing
Prefer superme capture over editing files directly: it validates before
writing, merges rather than clobbering, and appends to the ledger. Edit by hand
when correcting a fact or adding prose that capture would not know.