Five files across four note types so every new Obsidian Base has something to display immediately when the vault is opened: - daily/2026-04-19.md — today's journal entry, covering the PKB setup work. Wikilinks to the permanent note, project brief, and reading note below. - notes/pkb-as-lens-substrate.md — the load-bearing design note capturing the PKB-as-substrate / Council-as-lens inversion that drove this whole extension. - projects/mql/brief.md and log.md — active project tracking the companion Markdown-Query-Language CLI (sibling repo). First log entry records the Go-over-Rust decision and v0.1 scope. - reading/audiopen-integration-research.md — marked done; captures the two-clouds distinction (AudioPen's processing cloud unavoidable; Obsidian Sync optional) and names Tailscale Funnel as the chosen webhook-exposure path. - inbox/2026-04-19-1900_test-ingestion.md — hand-authored fleeting note (source: manual, distinguishable from AudioPen drops) so /triage-inbox has something to exercise on before the real voice pipeline is running. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.7 KiB
1.7 KiB
type, title, status, started, tags
| type | title | status | started | tags | |||
|---|---|---|---|---|---|---|---|
| project | mql — Markdown Query Language CLI | active | 2026-04-19 |
|
mql — Markdown Query Language CLI
Why
The Council's members currently reach for Grep + Read to find patterns across daily/, notes/, projects/, reading/. Grep is stringly-typed; it doesn't understand YAML frontmatter, wikilinks, tags, or Obsidian Bases. As the PKB grows, "find all sessions where winner = X" or "list permanent notes tagged with Y linked to project Z" will be load-bearing queries, and a proper query tool pays off.
mql is a Go CLI that indexes and queries any repo with Markdown + YAML frontmatter + wikilinks + tags + Obsidian Bases, exposing a Dataview-compatible query language from outside Obsidian.
Outcome definition
v0.1 shipped and installed in ~/.local/bin/mql:
- Cold-scan builds a SQLite index under
~/.cache/mql/<vault-hash>.sqlite. mql 'LIST FROM "sessions" WHERE winner = "vaasa"'returns JSON.mql base <name>executes an Obsidian.basefile as a query.- Researcher and
/ask-*-invoked members can shell out tomqlinstead of grep-walking directories.
Constraints
- Go (single static binary across Linux/macOS/Windows).
- Pure-Go SQLite (modernc.org/sqlite) — no cgo, no C toolchain at build time.
- MIT or Apache-2.0 license (open-source candidate).
- Dataview-compatible subset;
GROUP BY,FLATTEN,TASK/CALENDAR, inline fields in prose, anddataviewjsare explicitly out for v0.1.
Log
See log.
Links
- Sibling repo:
~/projects/mql/(separate from this repo). - Design:
~/projects/mql/docs/structure/initial-plan.md. - First customer: this vault.
/var/mnt/data/projects/council/is the v0.1 integration-test fixture.