Thinking stream

Capture raw notes in your browser. Export JSON into private/thinking-inbox/ for Cursor. Only intentionally curated notes ever appear on this public page.

What curated writing is already on this hub?

Search curated public articles (and any intentionally published thoughts). Raw prompt dumps and private drafts are not in this index.

How do I use this on mobile and sync to Cursor?

Open /thinking/ on your phone, add it to your home screen, capture drafts offline, then move the exported JSON into the repo so Cursor can read it. This static site has no server upload; the bridge is files on disk.

  1. Phone: Bookmark or Add to Home Screen (Safari Share → Add to Home Screen; Chrome → Install app / Add to Home screen).
  2. Capture: Save local draft on the phone. When ready, tap Download drafts JSON (or Copy drafts as JSON).
  3. Bridge: Move the file to your desktop via iCloud Drive, Google Drive, email attachment, or GitHub mobile / Working Copy.
  4. Cursor inbox (fastest): Drop the file in private/thinking-inbox/, then run npm run import:thinking-inbox (writes private/thoughts-archive.json, not the live site).
  5. Cursor memory: Open the daniels_corner folder in Cursor. Run npm run build:owner-brain so private archives index together. Nothing under private/ ships to Pages.
  6. Optional public note: Only if you want a thought live, copy it into public/data/thoughts.json with "visibility": "public", then build and deploy.

TLDR: Phone captures locally → private archive for Cursor → public page stays scrubbed unless you opt a note in.

How can a mini-LLM answer without API keys on static Pages?

Keep retrieval on the static site and in Cursor; run generation on a separate SDK Worker that holds your OpenAI key in Wrangler secrets. Daniel's Corner Pages never embeds keys or calls a model directly.

Static brain (Pages + Cursor)

private/owner-brain-index.json, the voice profile in public/data/youtube-voice-profile.json, and the prompt umbrella in public/data/prompt-umbrella.json supply retrieval context only. Cursor reads these at session start; the live site ships scrubbed public JSON.

Mini-LLM (SDK Worker, separate from Pages)

  1. Query in: Mobile bookmark, Cursor session, or a future /api/ask route on the Prism SDK Worker (not on Pages).
  2. Retrieve: Top chunks from the owner-brain index by tag, topic, or query match.
  3. System prompt: Voice profile + umbrella + explicit anti-echo rules: name one counter-argument, state what would contradict prior posts, cite chunk IDs used.
  4. Generate: OpenAI call through the existing SDK Worker (Wrangler secret, never in static HTML).
  5. Audit: Return answer plus cited chunk IDs so you can see voice match vs. challenge.

Mobile loop (same JSON everywhere)

/thinking/ capture → export JSON → private/thinking-inbox/ → Cursor / private archive. Public thoughts.json only when you opt a note in.

TLDR: Static Pages = capture UI + curated essays; private archive = raw notes; SDK Worker = generation with voice and anti-echo prompts.

How do I capture a new thought?

Drafts stay in your browser until you export them. Nothing is sent to a server on this static site.

Local drafts

Which thoughts are public on purpose?

Only rows in public/data/thoughts.json marked visibility: "public" (or published: true) appear here. Everything else stays in the private archive after inbox import.

No curated public thoughts right now. Capture stays local on /thinking/; raw notes go to the private archive, not this page.