Files
com.gregkilmer.www/README.md
T
Claude 3f646048a2 Add the content service and MCP server (phase 2)
services/content watches the vault's Site folder, runs every change through
fixed rules, keeps the last accepted version of each note with its history,
and serves one write API. The HTTP API, the MCP server for agents, and the
admin page and editing tools to come all write through it.

- SQLite store with history, review queue, redirects, links and full-text search
- Rules: invalid, misplaced, duplicate name or slug, text loss, secrets,
  agent contact details, agent edits, agent publishing, agent batches
- Watcher with debounce and a periodic full scan
- HTTP API with reader, agent, editor and admin tokens
- MCP tools: search, get_note, get_schema, list_held, set_status,
  add_library_item, update_fields, draft_post
- Tests, including taking in all 545 migrated notes with nothing held

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
2026-10-11 19:10:38 +00:00

2.1 KiB

GregKilmer.com

The site, rebuilt around Greg's Obsidian vault. Notes in the vault's Site folder are the content; a content service checks every change and keeps the last good version; the site serves pages from that service. The full plan, with the decisions behind it, is the Functional Design Plan.

What is here

Path What it is
packages/schema The one definition of every note type: fields, folders, file names, and the checks for one note and for the whole folder. The migration, the content service, the MCP server, the site and any later editing tool all use it.
vault-kit What goes into the vault: the Obsidian templates (generated from the schema) and the Site guide.
services/content The content service: watches the Site folder, runs the rules, keeps the last good version and its history, and serves the one write API. The MCP server for agents is part of it. See docs/content-service.md.
tools/migrate The one-time migration from the old site's data into Site folder notes.
docs How the pieces fit. Start with docs/content-model.md.
legacy The old site, kept for reference only. Nothing outside it imports from it except the migration.

Coming in later phases: the admin page, the component library, and the new site.

Commands

Node 22 or newer.

npm install
npm run check      # typecheck and tests
npm run migrate    # writes out/24.01_PersonalWebsite and out/MIGRATION-REPORT.md
npm run templates  # regenerates vault-kit templates after a schema change
npm run schema:json  # writes a JSON Schema per note type to packages/schema/json/

# the content service, against a copy of the Site folder
SITE_DIR=out/24.01_PersonalWebsite/Site DATA_DIR=data \
CONTENT_TOKENS="reader:<24+ chars>,admin:<24+ chars>" npm run content

The old site

The live site still runs from the old code until cutover. It builds the same way as before, from inside legacy/:

cd legacy && docker compose up -d --build