notion

Type: Infra / capability layer Status: Active Deadline: N/A — ongoing Created: 2026-06-09

What is this?

The Notion stack David has set up as a collaboration / dashboard layer on top of the local ~/topaz/projects/ PM substrate. Captures the patterns, scripts, and decisions that make Notion useful without making it the source of truth.

This is meta-infrastructure, not a product. It lives here so the setup, decisions, and tooling are versioned + searchable across future sessions.

Why this matters

~/topaz/projects/ is the local-canonical layer: plain Markdown, git-versionable, greppable, portable, zero lock-in. But it’s invisible to anyone without filesystem access. Notion fills the gap — shareable surfaces for collaborators (architects on scaffold, pilot users on race-timer eventually), structured databases for cross-project querying, mobile-friendly views.

The split (local = source of truth, Notion = projection) means if Notion went away tomorrow, nothing is lost.

Architecture

┌──────────────────────────┐         ┌──────────────────────────┐
│  ~/topaz/projects/<x>/   │         │  Notion (Enigma Studio)  │
│  ────────────────────    │         │  ────────────────────    │
│  overview.md             │   ┌─→   │  Projects (database)     │
│  log.md                  │   │     │    ├─ <project> (row)    │
│  tasks.md                │ ──┤     │    │   ├─ Decisions DB   │
│  decisions/*.md          │   │     │    │   ├─ Tasks DB       │
│  assets/*                │   │     │    │   ├─ Log page       │
│  (Markdown, git-tracked) │   │     │    │   └─ Research pages │
│                          │   │     │                          │
│  SOURCE OF TRUTH         │   │     │  PROJECTION / SHARE      │
└──────────────────────────┘   │     └──────────────────────────┘

                       sync via ntn CLI script
                            (one-way, on demand)

Capabilities currently set up

  • Notion MCP server (mcp.notion.com) registered at user scope (~/.claude.json) — Claude Code can read/write the workspace directly via OAuth, scoped to David’s personal account
  • ntn CLI v0.16.0 installed at /opt/homebrew/bin/ntn, authenticated to Enigmastudio workspace (creds in macOS keychain) — for shell-scriptable bulk operations
  • Projects database at workspace root — portfolio dashboard; each project is a row with Status / Type / Last touched
  • 🏷️ Bookmarks database — populated with 633 Raindrop bookmarks via import-bookmarks-to-notion.mjs
  • Scaffold mirror — full collaboration workspace for the AEC exploration project, includes 8-question Open Questions database
  • Race Timer mirror — full project state mirrored as a stress test; 10 decisions + 119 tasks + log + research

Scripts

  • ~/topaz/scripts/import-bookmarks-to-notion.mjs — parses ~/topaz/resources/bookmarks/*.md and pushes each bookmark to the Notion 🏷️ Bookmarks DB via ntn api. Throttled to ~2.5 req/sec. Supports --dry-run, --limit N, --start N for testing and resuming.

Patterns

  • Mirror on demand: only push a project to Notion when collaboration or dashboarding requires it (scaffold ← brother + SIL; race-timer ← future fleet pilots). Personal-only projects stay local.
  • Projects-as-database: each project is a row in the top-level Projects DB. Click into the row to access the full project workspace (decisions DB, tasks DB, log page, research sub-pages).
  • ntn CLI for writes, MCP for reads + interactive setup: ntn is ~5-10× more token-efficient for bulk operations; MCP is right for one-off structured changes and interactive workflows in Claude Code.

Intended users

  • David (primary, all surfaces)
  • Brother + sister-in-law (scaffold collaboration, guests on specific pages)
  • Future race-timer pilot users (read access to fleet stats / standings — via M-2.4 spectator surface, not the project workspace)

Workspace URLs