Meridian — Internal
How Our Project Management Works
AI-native project management — structured data for machines, visual dashboards for humans, one source of truth for everyone
The Problem
Why Normal PM Tools Don’t Work For Us

We’re three founders building an AI product. Each of us works with AI assistants (Claude Code, Cursor, etc). The AI does most of the actual work — writing specs, updating documents, tracking decisions. But traditional project management tools are built for humans clicking buttons in a browser.

The Human Problem
I can’t see what you did
Will updates the gravity scoring spec. Rob adds the error bank. Q restructures the whitepaper. Nobody knows what changed until someone asks on a call. Updates get lost in Slack. The whitepaper is always stale.
The AI Problem
Every AI session starts from zero
Will’s AI writes a brilliant spec — in a Google Doc. Q’s AI can’t read it. Rob’s AI doesn’t know it exists. Each AI operates in isolation. No shared context. No shared state. Three AIs doing redundant work.
The core insight: If AI is doing most of the work, the project management system needs to be optimized for AI first and humans second — not the other way around. AI reads structured data natively. Humans need visual dashboards. Build for both.
The Architecture
Two Layers — One Source of Truth
Backend — For AI
Structured YAML files
Every spec, task, decision, question, and milestone is a YAML file with typed fields and relationships to other objects. AI reads and writes these natively. No parsing HTML. No navigating a GUI. Pure structured data.
Frontend — For Humans
Auto-generated static HTML site
A Command Center, whitepaper status page, spec detail pages, and system manual — all generated from the YAML data by render_site.py and deployed to founder.mrd.works via Cloudflare Pages. Open the site on your phone, see the current state. Never edit the HTML directly — it regenerates every deploy.
THE FLOW Will’s AI updates spec_001.yaml (gravity scoring formula) Meridian Core auto-bumps version, logs to activity, attributes to Will render_site.py regenerates Command Center + Whitepaper + Spec pages + Manual Q opens founder.mrd.works → sees “Will updated spec_001 v3 — gravity formula” Q’s AI runs meridian inbox → sees the change with full context

Nobody copies and pastes. Nobody messages “hey I updated the doc.” The system tracks every change, attributes it, and surfaces it to whoever needs to see it.

The Object Model
Everything Is a Connected Object

There are no “documents” in the traditional sense. Everything in the system is a typed object with structured fields and relationships to other objects. A spec is an object. A decision is an object. A task is an object. They all connect.

TypeWhat it isExample
VisionNorth star documentsThe whitepaper, the manifesto, the founding constitution
SpecTechnical specificationNode schema, gravity scoring, embedding standard
DecisionA choice made with rationale“Gravity replaces confidence as primary ranking signal”
QuestionSomething unresolved, assigned to someone“Decay function: time-based or usage-based?”
TaskWork item with owner and priority“Define base schema” — Will, P0
MilestoneWeekly goal that tasks roll up to“Ship PM system + align on schema”
CallMeeting record with extracted action items“Founders call Apr 4” — 3 tasks, 2 decisions extracted
BlockerSomething preventing progress“Schema alignment needed before either founder builds”

How objects connect

Every object can reference any other object by ID. The system traverses these connections to build context. When you look at a spec, you don’t just see the spec — you see which whitepaper sections it implements, which decisions shaped it, what questions are still open, which tasks depend on it, and what changed recently.

CONTEXT GRAPH FOR SPEC_001: UNIFIED NODE SCHEMA VISION: Whitepaper section 05 “Knowledge Architecture” VISION: Whitepaper section 15 “Technical Specification” ↑ this spec implements these sections DECISION: dec_003 “Gravity replaces confidence” ↑ this decision shaped the spec QUESTION: “Decay function: time or usage?” (assigned: Will) ↑ still unresolved BLOCKER: “Schema alignment needed” ↑ blocks task_001 and task_002 TASKS: “Define base schema” (Will), “Rename terms” (Q) ↑ depend on this spec ACTIVITY: Will pushed v3 — gravity formula (Apr 4) Q created spec (Apr 4)

This is the key difference from a flat task list or a shared doc. Every object knows its full context. When Will’s AI starts working on the gravity spec, it doesn’t just see the spec — it sees the whitepaper vision it serves, the decisions that constrained it, the open questions, and the tasks waiting on it. It makes better decisions because it has full business context.

The Weekly Cadence
How a Typical Week Works
1
Monday — Set Goals
Create milestones for the week, assign tasks

At the start of each week, we set 2–4 milestones. Each milestone is a group goal that multiple founders contribute to. Tasks roll up to milestones.

$ meridian milestone “Ship PM + align on schema” --owners Q,Will --tasks task_001,task_002 WEEK 2026-W14 Set up PM system and schema alignment Q, Will 0/4 [ ] Build PM system (Q, P0) [ ] Define base schema (Will, P0) [ ] Site render pipeline (Q, P1) [ ] Review two-layer schema (Will, P1) Standardize terminology Q 0/1 [ ] Rename terms to industry standard (Q, P1) Error bank spec first draft Rob 0/1 [ ] Draft error bank spec (Rob, P1)
2
Meetings — Capture Everything
2 scheduled calls per week + ad-hoc, every one produces structured objects

After each call, raw notes get fed into the system. The AI extracts tasks, decisions, and questions from the notes and creates the corresponding objects. The call record links to everything it produced.

$ meridian capture “Founders Call April 4” --file notes.txt Extracted: TASKS: + task_004: Build Site render pipeline → Q + task_005: Review two-layer schema → Will + task_006: Draft error bank spec → Rob DECISIONS: + dec_002: YAML source of truth, static HTML site as view layer + dec_003: All founders get CLI access + git clone QUESTIONS: + question_003: BGE-M3 or newer embedding model? → Will + question_004: Dream Engine + error bank interaction? → Rob $ meridian summarize call_001 --text “Aligned on schema approach...”

The meeting summary, extracted items, and attendees are all connected. When Q looks at task_005 later, the context shows it came from the April 4 call and links back to the meeting record.

3
During the Week — Work + Inbox
Each founder works with their AI, checks inbox for what others did

Each founder works on their assigned tasks using their own AI. The AI reads the system manual (CLAUDE.md), understands the architecture, and operates through the CLI or directly through the Python API.

Q’s AI
Builds the PM system
Creates objects, builds CLI commands, wires the render pipeline. Every change logged to activity with attribution.
Will’s AI
Updates gravity spec
Loads spec_001, adds the scoring formula, saves with summary. Version bumps automatically. Q sees it in his inbox.
Rob’s AI
Drafts error bank spec
Creates spec_003, defines the schema, links to Dream Engine architecture. Everyone sees the new spec appear.

The inbox system tracks what each founder has seen. When Will pushes a spec update, Q’s inbox shows:

$ meridian inbox UPDATED (1 doc with new versions) [spec] Unified Node Schema spec_001 v2 → v3 (1 change) v3 Will: Added gravity scoring formula with non-linear curve and 90-day decay NEW (1 object you haven’t seen) [spec] Embedding Standard spec_002 v1 by Will RECENT ACTIVITY FROM OTHERS [Apr 5 18:27] Will: Created spec: Embedding Standard [Apr 5 18:27] Will: Added gravity scoring formula

Q sees exactly what changed, who changed it, and the summary. No Slack messages needed. No “hey did you update the doc?”

4
Deploy — Push to founder.mrd.works
One command renders HTML and deploys to the live site

After making changes, run one command:

$ bash deploy.sh Meridian Deploy render_site.py → generates site/ from YAML objects site/index.html Command Center site/whitepaper.html Full whitepaper site/specs/index.html Specs A-Z site/specs/spec_001.html Individual spec pages site/manual.html System manual Cloudflare Pages → deploys site/ to founder.mrd.works Account: bqminlee@gmail.com (isolated — Meridian only) Project: meridian-portal Domain: founder.mrd.works

The live site is now current. Open founder.mrd.works on your phone, see the dashboard.

The Live Site — founder.mrd.works
What Humans See

The live site at founder.mrd.works is the read-only frontend. Every page is static HTML auto-generated from YAML data by render_site.py and deployed via Cloudflare Pages. Nobody edits the HTML directly — it regenerates on every deploy.

The workspace

PageURLWhat it shows
Command Centerindex.htmlLive dashboard: this week’s milestones (with progress), active blockers, tasks by founder, open questions, recent decisions, core docs status, activity feed.
Whitepaperwhitepaper.htmlThe full product vision document with per-section status. Each section shows which specs implement it, what’s in progress, what questions are open, and what’s blocking.
Specsspecs/Index of every technical spec. Click into any one to see: definition, formula, whitepaper references, dependencies, open questions, blockers, and full changelog with attribution.
Manualmanual.htmlThe system manual (CLAUDE.md rendered as HTML). Contains the full architecture, object model, commands, and rules. AI reads the local CLAUDE.md file; humans read this page.

The Command Center

What you see when you open founder.mrd.works on your phone:

MERIDIAN — COMMAND CENTER Week 2026-W14 • 1 ACTIVE BLOCKER Schema alignment needed → blocks task_001, task_002 THIS WEEK’S GOALS Set up PM + schema alignment Q, Will 0/4 [ ] P0 Build PM system (Q) [ ] P0 Define base schema (Will) [ ] P1 Site render pipeline (Q) [ ] P1 Review two-layer schema (Will) Standardize terminology Q 0/1 Error bank spec draft Rob 0/1 MEETINGS Apr 5 Founders Call | 3 tasks, 2 decisions, 2 questions Summary: Aligned on schema approach. Q builds PM, Will does schema... Q’s TASKS (3) Will’s TASKS (2) Rob’s TASKS (1) P0 Build PM system P0 Define base schema P1 Error bank spec P1 Render pipeline P1 Review schema P1 Rename terms OPEN QUESTIONS (4) Industry term mapping → Q Gravity decay function → Will BGE-M3 or newer? → Will Dream Engine + error bank → Rob RECENT DECISIONS PM backend for AI, frontend for humans — Q, Will YAML source of truth, HTML site as view — Q, Will CORE DOCS Whitepaper v3 | Manifesto v1 | Constitution v1 spec_001: Unified Node Schema v3 (Will) spec_002: Embedding Standard v1 (Will) ACTIVITY Apr 5 Will Added gravity scoring formula Apr 5 Will Created spec: Embedding Standard Apr 5 Q Created spec_001, 6 tasks, blockers...
The Whitepaper as a Living System
The Document That Updates Itself

The whitepaper is not a file someone edits. It’s a rendering of structured data. When Will updates a spec, the whitepaper section that references that spec automatically reflects the change on the next sync.

WHITEPAPER — SECTION MAP 01. Abstract Approved 02. The Problem Approved 03. Personal System vs. Meridian Approved (Will v4) 04. The Base Model Approved 05. The Knowledge Architecture In Progress → spec_001: Unified Node Schema draft v3 (Will) → spec_002: Embedding Standard draft v1 (Will) → ? Decay function: time or usage? open (Will) 06. Generational Architecture Not started 07. The Codex System Not started 08. The Collective Layer Not started 10. Self-Evolution Architecture In Progress 15. Technical Specification In Progress → spec_001: Unified Node Schema draft v3 (Will) → BLOCKER: Schema alignment needed

The same spec (spec_001) appears under both Section 05 and Section 15 because it implements both. It’s one object referenced from two places. When Will updates the spec, both sections show the new version.

Click into any spec from the whitepaper page and you see the full detail: definition, formula, inputs, whitepaper references, dependencies, open questions, and the complete changelog showing who changed what and when.

AI Onboarding
How a New AI Gets Up to Speed

When any founder starts a new AI session, the AI needs to understand the full system before it can operate. Here’s the sequence:

AI SESSION START 1. AI reads CLAUDE.md (the System Manual) → understands: architecture, object model, commands, rules → knows: YAML is source of truth, HTML site is view, never edit HTML directly 2. AI checks inbox → sees: what changed since last session, who did what → knows: current state without asking the founder 3. AI checks status → sees: tasks assigned, blockers, open questions → knows: what needs attention right now 4. AI loads context for whatever the founder wants to work on → sees: the full graph — vision refs, deps, questions, activity → knows: the business context behind every technical decision 5. AI asks: “What do you want to work on?”

The System Manual is the key. It lives as a local file (CLAUDE.md in the meridian folder) and is also rendered as manual.html on founder.mrd.works. Claude Code reads the local file automatically. Humans can read it on the live site. Every founder clones the repo from github.com/Qphiuchus/meridian and syncs via git push/pull.

When anyone changes the system, they update the manual. New object types, new commands, new rules — the manual gets updated. Next session, every AI reads the updated manual. Everyone’s AI stays aligned.

Portability
The View Layer Is Replaceable

The static HTML site is the view layer, not the source of truth. The real data is YAML files in git. If we want to switch to a custom web app, Linear, or anything else, we write a new render target. The backend doesn’t change.

What stays
Everything that matters
All objects, all history, all relationships, all changelogs, the full activity log, the complete whitepaper content, every spec, every decision. It’s all in YAML files on disk.
What changes
Only the render scripts
Replace render_site.py with whatever targets the new frontend. Same data, different rendering. Could be a React app, a custom dashboard, or a completely different tool.
The Complete Picture
Everything Connected
THE MERIDIAN PM SYSTEM INPUTS SYSTEM OUTPUTS ─────── ────── ─────── Meeting notes → YAML Objects → Command Center (founder.mrd.works) Spec research → specs/ → Whitepaper page (founder.mrd.works) Decisions made → decisions/ → Spec detail pages (founder.mrd.works) Questions raised → tasks/ → Inbox (CLI) Weekly goals → milestones/ → Weekly view (CLI) calls/ → Activity feed questions/ → Context graphs blockers/ vision/ meridian_core.py Auto-versions every change Logs every mutation Attributes to author Resolves all relationships render_site.py → deploy.sh YAML → HTML → founder.mrd.works Git: github.com/Qphiuchus/meridian Cloudflare: bqminlee@gmail.com CLAUDE.md The System Manual Every AI reads this first Shared brain across all founders
10
Object types
1
Source of truth
(YAML)
3
Founders
3 AIs
0
Manual status
updates needed