Files
council/projects/mql/brief.md
T
jpmschweitzerandClaude Opus 4.7 79be7a9aae seed example content so Bases render non-empty on first open
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>
2026-04-19 20:18:14 +02:00

1.7 KiB

type, title, status, started, tags
type title status started tags
project mql — Markdown Query Language CLI active 2026-04-19
tooling
go
pkb

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 .base file as a query.
  • Researcher and /ask-*-invoked members can shell out to mql instead 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, and dataviewjs are explicitly out for v0.1.

Log

See log.

  • 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.