From a355da99a6f93e52d349c33ca95debe63aa56c9a Mon Sep 17 00:00:00 2001 From: Sam Valladares Date: Tue, 2 Jun 2026 12:40:48 -0500 Subject: [PATCH] Revert "Add developer launch kit for Vestige v2.1.23" This reverts commit 00511948ffd345e17b3f12a858114fc35375f502. --- .github/workflows/pages.yml | 46 ----- CLAUDE.md | 3 +- README.md | 59 +------ docs/LAUNCH_STATS.md | 88 --------- docs/comparison.md | 82 --------- docs/launch/blog-post.md | 2 +- docs/launch/demo-script.md | 12 +- docs/launch/receipt-lock.md | 167 ------------------ docs/launch/reddit-cross-reference.md | 25 ++- docs/launch/show-hn.md | 38 ++-- docs/marketing/LAUNCH_NOW.md | 35 ---- docs/marketing/README.md | 33 ---- docs/marketing/assets/.gitkeep | 0 docs/marketing/assets/CAPTURE.md | 40 ----- .../assets/dashboard-placeholder.svg | 10 -- docs/marketing/demo-video-storyboard.md | 32 ---- .../growth-engine/MARKETING-CLAUDE.md | 69 -------- docs/marketing/growth-engine/README.md | 84 --------- docs/marketing/mcp-registries.md | 57 ------ docs/marketing/metrics-tracker.md | 66 ------- .../ready-to-post/hn-first-comment.txt | 32 ---- docs/marketing/ready-to-post/hn-title.txt | 1 - .../reddit-experienceddevs-title.txt | 1 - .../ready-to-post/reddit-experienceddevs.md | 19 -- docs/marketing/ready-to-post/x-thread.txt | 18 -- docs/marketing/wave-a-launch.md | 47 ----- docs/marketing/wave-b-launch.md | 45 ----- docs/website/index.html | 82 --------- package.json | 3 +- packages/vestige-mcp-npm/README.md | 28 +-- packages/vestige-mcp-npm/package.json | 1 - scripts/marketing/preflight.sh | 47 ----- scripts/marketing/seed-baseline-memories.sh | 29 --- scripts/marketing/setup-marketing-instance.sh | 44 ----- 34 files changed, 42 insertions(+), 1303 deletions(-) delete mode 100644 .github/workflows/pages.yml delete mode 100644 docs/LAUNCH_STATS.md delete mode 100644 docs/comparison.md delete mode 100644 docs/launch/receipt-lock.md delete mode 100644 docs/marketing/LAUNCH_NOW.md delete mode 100644 docs/marketing/README.md delete mode 100644 docs/marketing/assets/.gitkeep delete mode 100644 docs/marketing/assets/CAPTURE.md delete mode 100644 docs/marketing/assets/dashboard-placeholder.svg delete mode 100644 docs/marketing/demo-video-storyboard.md delete mode 100644 docs/marketing/growth-engine/MARKETING-CLAUDE.md delete mode 100644 docs/marketing/growth-engine/README.md delete mode 100644 docs/marketing/mcp-registries.md delete mode 100644 docs/marketing/metrics-tracker.md delete mode 100644 docs/marketing/ready-to-post/hn-first-comment.txt delete mode 100644 docs/marketing/ready-to-post/hn-title.txt delete mode 100644 docs/marketing/ready-to-post/reddit-experienceddevs-title.txt delete mode 100644 docs/marketing/ready-to-post/reddit-experienceddevs.md delete mode 100644 docs/marketing/ready-to-post/x-thread.txt delete mode 100644 docs/marketing/wave-a-launch.md delete mode 100644 docs/marketing/wave-b-launch.md delete mode 100644 docs/website/index.html delete mode 100755 scripts/marketing/preflight.sh delete mode 100755 scripts/marketing/seed-baseline-memories.sh delete mode 100755 scripts/marketing/setup-marketing-instance.sh diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml deleted file mode 100644 index d30a8f3..0000000 --- a/.github/workflows/pages.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Deploy GitHub Pages - -on: - push: - branches: [main] - paths: - - 'docs/website/**' - - 'docs/marketing/assets/**' - - '.github/workflows/pages.yml' - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages - cancel-in-progress: false - -jobs: - deploy: - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - uses: actions/checkout@v4 - - - name: Prepare site root - run: | - mkdir -p _site - cp -r docs/website/* _site/ - mkdir -p _site/assets - cp -r docs/marketing/assets/* _site/assets/ 2>/dev/null || true - # Fix asset paths for Pages (no parent ../) - sed -i 's|../marketing/assets/|assets/|g' _site/index.html || true - - - uses: actions/configure-pages@v5 - - - uses: actions/upload-pages-artifact@v3 - with: - path: _site - - - id: deployment - uses: actions/deploy-pages@v4 diff --git a/CLAUDE.md b/CLAUDE.md index c9034d6..4ee5762 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,8 +18,7 @@ dashboard embedded into the release binary. The core product promise is: ## Working Rules - Prefer source evidence over memory. Use `rg`, tests, and nearby code before - making claims about behavior. This public repo guidance does not override - private user-level memory protocols loaded outside the repository. + making claims about behavior. - Keep release changes scoped. Do not rewrite unrelated modules during a version/tag cleanup unless the release gate requires it. - Preserve local-first behavior. Heavy models, Sanhedrin-style verifier hooks, diff --git a/README.md b/README.md index fb612ad..f747715 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Vestige -### Local memory and receipts for MCP-compatible AI agents. +### Local cognitive memory for MCP-compatible AI agents. [![GitHub stars](https://img.shields.io/github/stars/samvallad33/vestige?style=social)](https://github.com/samvallad33/vestige) [![Release](https://img.shields.io/github/v/release/samvallad33/vestige)](https://github.com/samvallad33/vestige/releases/latest) @@ -10,23 +10,11 @@ [![License](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE) [![MCP Compatible](https://img.shields.io/badge/MCP-compatible-green)](https://modelcontextprotocol.io) -**Your coding agent forgets yesterday and can lie about today.** Vestige gives it a local brain — FSRS-6 memory that learns and forgets — plus **Receipt Lock** that blocks "tests passed" unless a real command receipt exists. +**Your agent forgets project decisions between sessions. Vestige gives it local, inspectable memory.** -```bash -npm install -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user -``` +Built on proven memory and retrieval ideas — FSRS-6 spaced repetition, prediction error gating, synaptic tagging, spreading activation, and memory consolidation — all running in a single Rust binary with a local dashboard. 100% local. Zero cloud. -| | | -|---|---| -| **Receipt Lock** — optional hook layer; vetoes unverified "green build" claims | **3D dashboard** — `vestige dashboard` → `localhost:3927` | -| ![Receipt Lock demo](docs/marketing/assets/receipt-lock.gif) · [capture guide](docs/marketing/assets/CAPTURE.md) | ![Memory dashboard](docs/marketing/assets/dashboard-placeholder.svg) | - -*Replace placeholders with GIFs from [`CAPTURE.md`](docs/marketing/assets/CAPTURE.md) before Wave B launch.* - -**v2.1.23** · ~86K LOC Rust · **25** MCP tools · **30** cognitive modules · **1,200+** tests · **22MB** binary · 100% local · AGPL-3.0 - -[Quick Start](#quick-start) | [Receipt Lock](#receipt-lock) | [Dashboard](#-3d-memory-dashboard) | [Compare vs RAG](docs/comparison.md) | [Launch stats](docs/LAUNCH_STATS.md) | [Docs](docs/) +[Quick Start](#quick-start) | [Dashboard](#-3d-memory-dashboard) | [How It Works](#-the-cognitive-science-stack) | [Tools](#-25-mcp-tools) | [Docs](docs/) @@ -67,43 +55,6 @@ codex mcp add vestige -- vestige-mcp # → "You prefer TypeScript over JavaScript." ``` -## Receipt Lock - -Coding agents often finish with confident summaries like "tests passed" or -"the build is green." Receipt Lock checks those operational claims against -structured command receipts from the current transcript before they become part -of the final answer. - -If the agent claims verification happened but no matching successful command -receipt exists, Vestige can block the claim and write an inspectable local -receipt instead of letting the agent invent a clean ending. - -Receipt Lock is optional and works through the Claude Code Cognitive Sandwich -hook layer: - -```bash -# Install the local memory server first -npm install -g vestige-mcp-server@latest - -# Add normal MCP memory -claude mcp add vestige vestige-mcp -s user - -# Optional: enable Receipt Lock / Sanhedrin hooks -vestige sandwich install --enable-sanhedrin - -# Optional: point Sanhedrin at any OpenAI-compatible endpoint -vestige sandwich install \ - --enable-sanhedrin \ - --sanhedrin-endpoint=http://127.0.0.1:11434/v1/chat/completions \ - --sanhedrin-model=qwen2.5:14b -``` - -Receipts are local: - -- Latest JSON: `~/.vestige/sanhedrin/latest.json` -- Latest HTML: `~/.vestige/sanhedrin/latest.html` -- Command ledger: `~/.vestige/sanhedrin/command-receipts.jsonl` -
Other platforms & install methods @@ -471,8 +422,6 @@ vestige dashboard # Open 3D dashboard in browser | [CLAUDE.md Setup](docs/CLAUDE-SETUP.md) | Templates for proactive memory | | [Configuration](docs/CONFIGURATION.md) | CLI commands, environment variables | | [Integrations](docs/integrations/) | Codex, Xcode, Cursor, VS Code, JetBrains, Windsurf | -| [Comparison vs RAG/Mem0](docs/comparison.md) | When to use Vestige | -| [Marketing kit](docs/marketing/README.md) | Launch waves, growth engine, metrics | | [Changelog](CHANGELOG.md) | Version history | --- diff --git a/docs/LAUNCH_STATS.md b/docs/LAUNCH_STATS.md deleted file mode 100644 index 4bd1d92..0000000 --- a/docs/LAUNCH_STATS.md +++ /dev/null @@ -1,88 +0,0 @@ -# Vestige Launch Stats (Single Source of Truth) - -**Last verified:** 2026-06-02 -**Use this file** when updating README, launch posts, npm README, and landing page. Do not invent numbers elsewhere. - -## Release - -| Field | Value | -|-------|-------| -| Version | **v2.1.23** ("Receipt Lock Hardening") | -| npm package | `vestige-mcp-server@latest` | -| Install | `npm install -g vestige-mcp-server@latest` | -| MCP connect (Claude Code) | `claude mcp add vestige vestige-mcp -s user` | -| Optional Receipt Lock | `vestige sandwich install --enable-sanhedrin` | -| License | AGPL-3.0-only | -| Repo | https://github.com/samvallad33/vestige | -| Homepage (marketing) | https://samvallad33.github.io/vestige/ (GitHub Pages) | - -## Author - -| Field | Value | -|-------|-------| -| Name | Sam Valladares | -| Age | **22** (solo developer) | -| GitHub stars (2026-06-02) | **542** | -| Forks | **55** | - -## Codebase (run to refresh) - -```bash -# Rust LOC (crates + tests) -find crates tests -name '*.rs' | xargs wc -l | tail -1 - -# MCP tool count (must match server assertion) -rg 'name: "' crates/vestige-mcp/src/server.rs | wc -l - -# Tests -cargo test --workspace --no-fail-fast 2>&1 | tail -3 -``` - -| Metric | Current value | Notes | -|--------|---------------|-------| -| Rust LOC | **~86,000** | `crates/` + `tests/` `.rs` files | -| MCP tools | **25** | Verified in `server.rs` (`tools.len() == 25`) | -| Cognitive modules | **30** | Per README architecture | -| Rust tests | **1,200+** | CHANGELOG v2.1.0: 1,229 passing; re-run before major launch | -| Dashboard tests | **171** | Vitest in `apps/dashboard` | -| Release binary | **~22MB** | Single binary, embedded SvelteKit dashboard | -| Embedding model | Nomic Embed Text v1.5 (~130MB first-run download) | - -## Install (canonical — no `sudo mv`) - -The npm package registers global bins via `postinstall`. **Do not** tell users to `sudo mv vestige-mcp` unless manual binary install failed. - -```bash -npm install -g vestige-mcp-server@latest -vestige health -claude mcp add vestige vestige-mcp -s user -``` - -If `vestige-mcp` is not on PATH after install: - -```bash -npm prefix -g # e.g. /usr/local or ~/.npm-global -# Ensure that path/bin is in your shell PATH -``` - -Manual binary placement (optional): - -```bash -vestige update --install-dir /usr/local/bin -``` - -## Messaging guardrails - -- Lead Wave A with **Receipt Lock** (agents overclaim "tests passed"). -- Close Wave B with **cognitive memory** (FSRS-6, dreaming, 3D dashboard). -- Never: "revolutionary", "game-changer", "AI-powered", competitor bashing. -- Always: honest neuroscience (faithful implementations vs engineering heuristics). - -## North-star metrics - -Track weekly (see `docs/marketing/metrics-tracker.md`): - -1. **npm downloads** (`npm view vestige-mcp-server` / npmjs.com stats) -2. **GitHub stars delta** -3. **Inbound issues/DMs** mentioning install -4. **Referral source** (HN, Reddit, X, registry) diff --git a/docs/comparison.md b/docs/comparison.md deleted file mode 100644 index 9a78a3e..0000000 --- a/docs/comparison.md +++ /dev/null @@ -1,82 +0,0 @@ -# Vestige vs Mem0 vs RAG vs Native AI Memory - -Canonical comparison for launch posts and arguments. Grounded in [SCIENCE.md](SCIENCE.md) and [LAUNCH_STATS.md](LAUNCH_STATS.md). - -## One-line thesis - -**RAG is retrieval. Native memory is a black box. Mem0 is a strong cloud memory API. Vestige is a local cognitive system that forgets, strengthens, dreams, and can block unverified agent claims.** - -## Comparison table - -| Capability | RAG / vector DB | Native AI memory (Claude, ChatGPT) | Mem0 | Vestige | -|------------|-----------------|-------------------------------------|------|---------| -| **Runs local** | Often cloud embeddings | Cloud only | Cloud API (local option limited) | **100% local** default | -| **You own the data** | Your infra | Vendor | Vendor / API | **SQLite on your disk** | -| **Forgetting curve** | None — equal weight forever | Opaque | Categories + metadata | **FSRS-6** power-law decay | -| **Duplicate handling** | Manual | Opaque | Some dedup | **Prediction Error Gating** on ingest | -| **Retrieval strengthens memory** | No | Unknown | Partial | **Testing Effect** on every search | -| **Offline consolidation** | No | No | No | **`dream`** — replay + connect | -| **Contradiction awareness** | Returns both chunks | No | Some products | **`deep_reference` / `contradictions`** | -| **Active suppression** | Delete only | No | Delete | **`suppress`** — inhibited, not erased | -| **Agent overclaim guard** | No | No | No | **Receipt Lock** (optional Sanhedrin hooks) | -| **Visualization** | None | None | Dashboard (cloud) | **3D graph** + WebSocket events | -| **Protocol** | Custom | Proprietary | API + MCP | **MCP** (25 tools) | -| **License** | Varies | Proprietary | Apache / commercial | **AGPL-3.0** (local use = free) | - -## When to use what - -### Use RAG when - -- You have a fixed document corpus (PDFs, wiki, codebase index). -- You need one-shot Q&A over static content. -- You do not need memory lifecycle or session continuity. - -### Use Mem0 when - -- You want a hosted memory API with minimal setup. -- Team sync and cloud dashboards are acceptable. -- You do not need FSRS decay or local-only air-gapped deploy. - -### Use native Claude/ChatGPT memory when - -- Casual personal context is enough. -- You do not need inspectable storage, decay curves, or contradiction tooling. - -### Use Vestige when - -- You run **Claude Code, Cursor, Codex, or any MCP client** daily. -- Context bloat from "remember everything" hurts retrieval quality. -- **Contradicting memories** have burned you (config changed, lib upgraded). -- You want **Receipt Lock** so agents cannot fake "tests passed." -- **Privacy / air-gapped** matters — embeddings run locally via ONNX. - -## Honest limitations (Vestige) - -- **AGPL-3.0**: hosting as a service without source disclosure is not allowed. -- **First-run download**: ~130MB embedding model (then offline). -- **Receipt Lock** requires optional Claude Code Cognitive Sandwich hooks + a verifier endpoint for Sanhedrin. -- **Neuroscience modules** mix faithful implementations and engineering heuristics — see [SCIENCE.md](SCIENCE.md) for citations vs approximations. -- **Solo project**: no enterprise SLA; GitHub issues are the support channel. - -## Receipt Lock (Vestige-only) - -Coding agents often end sessions with: - -> "All tests passed. Build is green. Ready to merge." - -Receipt Lock checks those **operational claims** against structured command receipts from the transcript. No matching successful receipt → claim blocked, local veto receipt written under `~/.vestige/sanhedrin/`. - -```bash -vestige sandwich install --enable-sanhedrin -``` - -Details: [README Receipt Lock section](../README.md#receipt-lock). - -## Install - -```bash -npm install -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user -``` - -Full stats: [LAUNCH_STATS.md](LAUNCH_STATS.md) · Repo: https://github.com/samvallad33/vestige diff --git a/docs/launch/blog-post.md b/docs/launch/blog-post.md index 08178ba..886bb5a 100644 --- a/docs/launch/blog-post.md +++ b/docs/launch/blog-post.md @@ -6,7 +6,7 @@ Every conversation starts from zero. You explain your project structure, your pr Vestige is an open-source Rust MCP server that gives AI agents persistent memory modeled on real neuroscience. Not metaphorical neuroscience. Actual published algorithms from Ebbinghaus (1885), Collins & Loftus (1975), Bjork & Bjork (1992), Frey & Morris (1997), and the FSRS-6 spaced repetition scheduler trained on 700 million Anki reviews. -~86,000 lines of Rust. 30 cognitive modules. 1,200+ tests. v2.1.23 adds Receipt Lock for unverified agent claims. Single 22MB binary with embedded SvelteKit dashboard. AGPL-3.0 licensed. Stats: [LAUNCH_STATS.md](../LAUNCH_STATS.md). +77,840+ lines of Rust. 29 cognitive modules. 734 tests. Single binary deployment with an embedded SvelteKit dashboard. AGPL-3.0 licensed. Here is how we built it. diff --git a/docs/launch/demo-script.md b/docs/launch/demo-script.md index 162efb8..4740dc4 100644 --- a/docs/launch/demo-script.md +++ b/docs/launch/demo-script.md @@ -1,6 +1,4 @@ -# Vestige v2.1.23 — Demo Script (Conference + Launch Video) - -> Stats: [LAUNCH_STATS.md](../LAUNCH_STATS.md) · Wave A hook: [receipt-lock.md](receipt-lock.md) +# Vestige v2.0 "Cognitive Leap" — MCP Dev Summit NYC Demo Script **Event:** MCP Dev Summit NYC, April 1-3, 2026 **Presenter:** Sam Valladares @@ -17,7 +15,7 @@ - [ ] Phone hotspot configured as backup (embedding model already cached = no network needed) ### Software -- [ ] Vestige binary installed: `vestige-mcp --version` shows `2.1.23` (or latest) +- [ ] Vestige v2.0 binary installed: `vestige-mcp --version` shows `2.0.0` - [ ] Claude Code installed and authenticated - [ ] Terminal font size: 18pt minimum (audience readability) - [ ] Browser zoom: 150% for dashboard views @@ -207,7 +205,7 @@ claude mcp add vestige vestige-mcp -s user ### [2:50-3:00] Close -> Vestige v2.1.23. Open source, AGPL-3.0. The repo is `samvallad33/vestige`. Come talk to me if you want to see the neuroscience under the hood. +> Vestige v2.0, "Cognitive Leap." Open source, AGPL-3.0. The repo is `samvallad33/vestige`. Come talk to me if you want to see the neuroscience under the hood. --- @@ -393,9 +391,9 @@ vestige-mcp --version # One command to install ``` -> This is what I've been building. I'm one person, I'm twenty-two years old, and I believe this is how AI memory should work — grounded in real science, running locally, open source. +> This is what I've been building for the past three months. I'm one person, I'm twenty-one years old, and I believe this is how AI memory should work — grounded in real science, running locally, open source. > -> Vestige v2.1.23. The repo is `github.com/samvallad33/vestige`. The dashboard is running at `localhost:3927`. I'll be around all three days — come find me if you want to talk about FSRS, or synaptic tagging, or why I think every AI assistant on the planet should have a forgetting curve. +> Vestige v2.0, "Cognitive Leap." The repo is `github.com/samvallad33/vestige`. The dashboard is running at `localhost:3927`. I'll be around all three days — come find me if you want to talk about FSRS, or synaptic tagging, or why I think every AI assistant on the planet should have a forgetting curve. > > Thank you. diff --git a/docs/launch/receipt-lock.md b/docs/launch/receipt-lock.md deleted file mode 100644 index a27df5a..0000000 --- a/docs/launch/receipt-lock.md +++ /dev/null @@ -1,167 +0,0 @@ -# Wave A Launch — Receipt Lock (v2.1.23) - -Primary viral hook. Post **before** the memory/science Show HN wave. Stats: [LAUNCH_STATS.md](../LAUNCH_STATS.md). - ---- - -## Hacker News — Show HN - -### Title (≤80 chars) - -``` -Show HN: Vestige – blocks coding agents from claiming "tests passed" without receipts -``` - -### First comment (body) - -``` -Hi HN, - -Your coding agent probably ends sessions with something like "all tests passed" or -"the build is green." I kept trusting that — until it wasn't true. - -I built Receipt Lock in Vestige (an MCP memory server I maintain). Before operational -claims become part of the final answer, Vestige checks them against structured -command receipts from the current transcript. No matching successful receipt → the -claim can be blocked and a local veto receipt is written (JSON + HTML under -~/.vestige/sanhedrin/). - -**What it is:** Optional Claude Code Cognitive Sandwich hooks + local MCP server. -Not cloud. Not "trust me bro" logging — inspectable receipts on disk. - -**Install (memory server — required base):** -npm install -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user - -**Enable Receipt Lock (optional):** -vestige sandwich install --enable-sanhedrin - -Sanhedrin verifier can point at any OpenAI-compatible endpoint (Ollama, MLX, hosted API). - -**And it also does real memory:** FSRS-6 spaced repetition, prediction error gating, -memory dreaming, 3D dashboard at localhost:3927. ~86K LOC Rust, 25 MCP tools, 1,200+ -tests, 22MB binary. 100% local after first embedding download. - -I'm 22, solo, AGPL-3.0. Repo: https://github.com/samvallad33/vestige -Comparison: https://github.com/samvallad33/vestige/blob/main/docs/comparison.md - -Happy to discuss false positive tuning, Sanhedrin presets, or why receipts beat vibes. -``` - ---- - -## r/ExperiencedDevs - -### Title - -``` -My coding agent kept saying "tests passed" when they hadn't. I added a receipt check before the summary ships. -``` - -### Body - -```markdown -**TL;DR:** Vestige Receipt Lock checks operational claims ("tests passed", "build green", "lint clean") against structured command receipts from the transcript. No receipt → block + local veto artifact. - -**The failure mode:** Agent runs partial checks, or hallucinates a green ending. You merge. CI breaks. You've seen this. - -**The fix:** Optional hooks (`vestige sandwich install --enable-sanhedrin`) + MCP memory server. When the model tries to assert verification without evidence, Vestige can veto and write `~/.vestige/sanhedrin/latest.html` so you can inspect what happened. - -**Not a replacement for CI.** It's a last-mile guard on *agent-authored* summaries in Claude Code. - -**Stack:** Rust, local, MCP. Same project also does FSRS-6 cognitive memory (decay, dreaming, contradiction tools) — I'll post that angle separately if people want the science side. - -```bash -npm install -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user -vestige sandwich install --enable-sanhedrin -``` - -GitHub: https://github.com/samvallad33/vestige - -What false positives are you seeing with agent verification claims? Curious if this matches your workflow. -``` - ---- - -## r/programming - -### Title - -``` -Open-source guard: coding agents can't claim "tests passed" without command receipts (local MCP, Rust) -``` - -### Body — use r/ExperiencedDevs body; add: - -```markdown -License: AGPL-3.0. v2.1.23. Stats: ~86K LOC, 25 tools, 22MB binary. -``` - ---- - -## X / Twitter thread (8 posts) - -1. Your coding agent ends with "tests passed." Did it run tests? Or did it summarize hope? - -2. I ship Receipt Lock in Vestige — checks operational claims against command receipts from the transcript. - -3. No matching successful receipt → claim blocked. Local veto receipt: `~/.vestige/sanhedrin/latest.html` - -4. Optional hooks. Local MCP server. Not cloud analytics. - -5. ```bash - npm i -g vestige-mcp-server@latest - claude mcp add vestige vestige-mcp -s user - vestige sandwich install --enable-sanhedrin - ``` - -6. Same binary also does FSRS-6 memory — decay, dreaming, 3D brain viz. Thread on that tomorrow. - -7. 22yo solo dev. AGPL. https://github.com/samvallad33/vestige - -8. What's the worst "green build" lie your agent told you? Reply — building the FAQ from real stories. - ---- - -## Lobste.rs - -### Title - -``` -Vestige Receipt Lock: local MCP guard against unverified "tests passed" agent claims -``` - -### Tags - -`rust` `programming` `security` - -### Body - -Use HN first comment (shorter). Link comparison.md. - ---- - -## Engagement playbook (Wave A) - -| Window | Action | -|--------|--------| -| 0–3h | Reply every comment within 30 min | -| Tone | Technical, humble, no "revolutionary" | -| Competitors | Acknowledge Mem0/Cursor memory; don't bash | -| CTA | Install + link comparison.md | -| Next | Schedule Wave B 48h after Wave A peaks | - -### DO NOT - -- "Game-changer" / "AI-powered" / "paradigm shift" -- Disparage Mem0 or Claude native memory -- Promise Receipt Lock replaces CI - ---- - -## Timing - -- **HN / Lobsters:** Tuesday or Wednesday, 8–10 AM US Eastern -- **Reddit:** Same day, +1–2h after HN -- **X:** Pin thread during HN peak diff --git a/docs/launch/reddit-cross-reference.md b/docs/launch/reddit-cross-reference.md index d03f5f6..eae7aaf 100644 --- a/docs/launch/reddit-cross-reference.md +++ b/docs/launch/reddit-cross-reference.md @@ -1,6 +1,4 @@ -# Reddit Launch Posts — cross_reference / deep_reference (v2.1.23) - -> Canonical install: [LAUNCH_STATS.md](../LAUNCH_STATS.md) — **no `sudo mv`**; use `npm install -g vestige-mcp-server@latest` +# Reddit Launch Posts — cross_reference Tool ## Post 1: r/ClaudeAI (Primary) @@ -80,8 +78,8 @@ Memory systems need to be SMARTER, not just bigger. That's what Vestige does — - **cross_reference** — the new tool that catches contradictions before they become wrong answers ### Stats: -- 25 MCP tools -- 1,200+ tests +- 22 MCP tools +- 746 tests, 0 failures - Zero `unsafe` code - Clean security audit (0 findings — AgentAudit verified) - Single 22MB Rust binary — no Docker, no PostgreSQL, no cloud @@ -89,8 +87,9 @@ Memory systems need to be SMARTER, not just bigger. That's what Vestige does — ### Install (30 seconds): ```bash -npm install -g vestige-mcp-server@latest -vestige health +# macOS Apple Silicon +npm install -g vestige-mcp-server +sudo mv vestige-mcp /usr/local/bin/ claude mcp add vestige vestige-mcp -s user ``` @@ -163,12 +162,12 @@ The AI sees the conflict. Picks the right one. Every time. **100% local. Your data never leaves your machine.** ```bash -npm install -g vestige-mcp-server@latest -vestige health +npm install -g vestige-mcp-server +sudo mv vestige-mcp /usr/local/bin/ claude mcp add vestige vestige-mcp -s user ``` -1,200+ tests. Zero unsafe code. AGPL-3.0. +746 tests. Zero unsafe code. Clean security audit. AGPL-3.0. GitHub: https://github.com/samvallad33/vestige @@ -176,7 +175,7 @@ GitHub: https://github.com/samvallad33/vestige ## Post 3: r/rust (Optional, technical audience) -**Title:** `I built a 22MB Rust binary that gives AI agents a brain — FSRS-6, 30 cognitive modules, Receipt Lock, 25 MCP tools. ~86K LOC, zero unsafe.` +**Title:** `I built a 22MB Rust binary that gives AI agents a brain — FSRS-6, 29 cognitive modules, 3D dashboard, and a new contradiction detection tool. 746 tests, zero unsafe.` --- @@ -189,7 +188,7 @@ The latest addition: `cross_reference` — pairwise contradiction detection acro - No runtime, no GC pauses during real-time search - `tokio::sync::Mutex` for the cognitive engine, `std::sync::Mutex` for SQLite reader/writer split - Zero `unsafe` blocks in the entire codebase -- `cargo test` runs 1,200+ tests across the workspace +- `cargo test` runs 746 tests in 11 seconds **Architecture:** ``` @@ -214,7 +213,7 @@ SQLite WAL + FTS5 + USearch HNSW Clean security audit. Parameterized SQL everywhere. CSP headers on the dashboard. Constant-time auth comparison (`subtle::ConstantTimeEq`). File permissions 0o600/0o700. GitHub: https://github.com/samvallad33/vestige -AGPL-3.0 | 1,200+ tests | ~86K LOC +AGPL-3.0 | 746 tests | 79K+ LOC --- diff --git a/docs/launch/show-hn.md b/docs/launch/show-hn.md index adc58ab..8cc5a95 100644 --- a/docs/launch/show-hn.md +++ b/docs/launch/show-hn.md @@ -1,7 +1,4 @@ -# Vestige v2.1.23 Launch — Show HN + Cross-Posts (Wave B: Memory) - -> **Wave A (Receipt Lock)** posts live in [receipt-lock.md](receipt-lock.md). Run Wave A first. -> Stats: [LAUNCH_STATS.md](../LAUNCH_STATS.md) +# Vestige v2.0 Launch — Show HN + Cross-Posts --- @@ -10,7 +7,7 @@ ### Title (76 chars) ``` -Show HN: Vestige v2.1.23 – FSRS-6 memory for AI agents + local Receipt Lock +Show HN: Vestige – FSRS-6 spaced repetition as long-term memory for AI agents ``` ### Body (first comment) @@ -60,7 +57,7 @@ retrieval. Written in Rust, 100% local, single 22MB binary. discover hidden connections and synthesize insights. Inspired by hippocampal replay during sleep. -**Dashboard (since v2.0, still core):** +**v2.0 adds:** - 3D neural visualization dashboard (SvelteKit + Three.js) — watch memories pulse when accessed, burst particles on creation, golden flash lines when @@ -77,10 +74,7 @@ retrieval. Written in Rust, 100% local, single 22MB binary. embedded via Rust's `include_dir!` macro. No Docker, no Node runtime, no external services. -**v2.1.23 adds Receipt Lock:** optional hooks that block operational claims like -"tests passed" unless matching command receipts exist in the transcript. - -**Numbers:** ~86,000 lines of Rust, 1,200+ tests, 30 cognitive modules, 25 MCP +**Numbers:** 77,840 lines of Rust, 734 tests, 29 cognitive modules, 21 MCP tools, search under 50ms for 1000 memories (SQLite FTS5 + USearch HNSW). **What it is NOT:** This is not RAG. RAG treats memory as a static database — @@ -93,7 +87,7 @@ The embedding model (Nomic Embed Text v1.5) runs locally via ONNX. After the first-run model download (~130MB), there are zero network requests. No telemetry, no analytics, no phoning home. -I've been using this daily and the experience is genuinely different. +I've been using this daily for 2 months and the experience is genuinely different. Claude remembers my coding patterns, my architectural decisions, my preferences. New sessions start with context instead of a blank slate. @@ -281,12 +275,12 @@ surprising and useful. ### r/rust -**Title:** `Vestige v2.1.23 — ~86K LOC Rust memory system with FSRS-6, Receipt Lock, and a 22MB binary` +**Title:** `Vestige v2.0 — 77K LOC Rust memory system with FSRS-6, HNSW, Axum WebSockets, and an embedded SvelteKit dashboard in a 22MB binary` **Body:** ```markdown -I've been building Vestige and just shipped v2.1.23. It's +I've been building Vestige for the past few months and just shipped v2.0. It's a cognitive memory system for AI agents that implements neuroscience-backed memory algorithms in pure Rust. @@ -320,7 +314,7 @@ memory algorithms in pure Rust. - **Release profile**: `lto = true`, `codegen-units = 1`, `opt-level = "z"`, `strip = true` gets the binary down to 22MB including embedded assets. -- **1,200+ tests** across workspace. Zero warnings on release gates. +- **734 tests**: 352 core + 378 mcp + 4 doctests. Zero warnings. **Architecture:** @@ -363,7 +357,7 @@ Happy to discuss any of the Rust architecture decisions. ### r/ClaudeAI -**Title:** `Vestige v2.1.23 — give Claude real long-term memory (FSRS-6) + optional Receipt Lock for fake "tests passed" claims` +**Title:** `Vestige v2.0 "Cognitive Leap" — give Claude real long-term memory with neuroscience-backed forgetting, a 3D dashboard, and 21 MCP tools` **Body:** @@ -391,7 +385,7 @@ locally on your machine. strength model, testing effect, synaptic tagging, spreading activation, context-dependent retrieval, memory dreaming. -**Highlights:** +**v2.0 new features:** - **3D Memory Dashboard** at localhost:3927/dashboard — watch Claude's mind in real-time. Memories pulse when accessed, burst particles on creation, golden @@ -407,8 +401,7 @@ locally on your machine. **Setup (2 minutes):** ```bash -npm install -g vestige-mcp-server@latest -vestige health +npm install -g vestige-mcp-server claude mcp add vestige vestige-mcp -s user ``` @@ -424,7 +417,7 @@ on Project X ended with a tricky race condition in the WebSocket handler. It's the difference between talking to someone with amnesia vs. someone who actually knows you. -25 MCP tools. ~86,000 lines of Rust. 1,200+ tests. Works with Claude Code, Claude +21 MCP tools. 77,840 lines of Rust. 734 tests. Works with Claude Code, Claude Desktop, Cursor, VS Code Copilot, JetBrains, Windsurf, and Xcode. Source: https://github.com/samvallad33/vestige @@ -436,7 +429,7 @@ Happy to answer questions or help with setup. ### r/LocalLLaMA -**Title:** `Vestige v2.1.23 — local-first AI memory with FSRS-6, Receipt Lock, zero cloud (~86K LOC Rust, 22MB binary)` +**Title:** `Vestige v2.0 — local-first AI memory server with FSRS-6 spaced repetition, ONNX embeddings, and zero cloud dependency (77K LOC Rust, 22MB binary)` **Body:** @@ -489,7 +482,7 @@ algorithms: - 3D force-directed memory graph with real-time WebSocket events - HyDE query expansion (template-based hypothetical document embeddings) - FSRS decay visualization with retention curves -- 1,200+ tests, 30 cognitive modules, 25 tools +- 734 tests, 29 cognitive modules, 21 tools - fastembed 5.11 with feature flags for Nomic v2 MoE + Qwen3 reranker **Performance:** @@ -542,7 +535,8 @@ This is a solo project — feedback, issues, and contributions are very welcome. implementations, some are engineering heuristics inspired by research) 3. 100% local, zero cloud — this is a feature, not a limitation 4. The 3D dashboard is a genuine exploration tool, not just eye candy -5. FSRS-6 + Receipt Lock — spaced repetition memory and optional agent claim verification +5. FSRS-6 is the differentiator — no other AI memory system uses real spaced + repetition ### What NOT to Say diff --git a/docs/marketing/LAUNCH_NOW.md b/docs/marketing/LAUNCH_NOW.md deleted file mode 100644 index 7e2b887..0000000 --- a/docs/marketing/LAUNCH_NOW.md +++ /dev/null @@ -1,35 +0,0 @@ -# LAUNCH NOW — Wave A (Receipt Lock) - -**Date started:** 2026-06-02 -**Copy-paste from:** [ready-to-post/](ready-to-post/) - -## 5-minute sequence - -1. Run preflight: - ```bash - ./scripts/marketing/preflight.sh - ``` - -2. **Hacker News** → https://news.ycombinator.com/submit - - URL: `https://github.com/samvallad33/vestige` - - Title: paste `ready-to-post/hn-title.txt` - - Post link, then immediately paste `ready-to-post/hn-first-comment.txt` as first comment - -3. **X** — paste `ready-to-post/x-thread.txt` (one tweet per numbered block) - -4. **r/ExperiencedDevs** — title from `reddit-experienceddevs-title.txt`, body from `reddit-experienceddevs.md` - -5. **r/programming** — same body + line: `License: AGPL-3.0. v2.1.23. ~86K LOC, 25 tools, 22MB binary.` - -6. Log URLs in [metrics-tracker.md](metrics-tracker.md) - -## After posting (30 min SLA on comments) - -```bash -vestige ingest "Wave A posted YYYY-MM-DD on HN Reddit X. Hook: agent fake tests passed. Log URLs in metrics-tracker." \ - --data-dir ~/.vestige-marketing --tags marketing,wave-a,vestige-launch -``` - -## 48h later → Wave B - -[wave-b-launch.md](wave-b-launch.md) + [show-hn.md](../launch/show-hn.md) memory angle diff --git a/docs/marketing/README.md b/docs/marketing/README.md deleted file mode 100644 index 75acb1e..0000000 --- a/docs/marketing/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Vestige Marketing Kit - -Everything needed to run the dual-wave launch and weekly growth loop. - -## Start here - -**Posting today?** → [LAUNCH_NOW.md](LAUNCH_NOW.md) (copy-paste from [ready-to-post/](ready-to-post/)) - -1. [LAUNCH_STATS.md](../LAUNCH_STATS.md) — canonical version, stats, install -2. [comparison.md](../comparison.md) — vs Mem0 / RAG / native memory -3. [launch/receipt-lock.md](../launch/receipt-lock.md) — **Wave A** copy (post first) -4. [launch/show-hn.md](../launch/show-hn.md) — **Wave B** copy -5. [wave-a-launch.md](wave-a-launch.md) / [wave-b-launch.md](wave-b-launch.md) — execution checklists - -## Assets - -| Path | Purpose | -|------|---------| -| [website/index.html](../website/index.html) | GitHub Pages landing | -| [assets/CAPTURE.md](assets/CAPTURE.md) | GIF/video capture | -| [demo-video-storyboard.md](demo-video-storyboard.md) | 60–90s video beats | - -## Ongoing - -| Path | Purpose | -|------|---------| -| [growth-engine/](growth-engine/) | Vestige-powered marketing agent setup | -| [metrics-tracker.md](metrics-tracker.md) | Weekly npm / stars / hooks | -| [mcp-registries.md](mcp-registries.md) | Directory submission packet | - -## Deploy landing page - -Push to `main` → GitHub Actions workflow `.github/workflows/pages.yml` publishes `docs/website/` to **https://samvallad33.github.io/vestige/** (enable Pages: Settings → Pages → GitHub Actions). diff --git a/docs/marketing/assets/.gitkeep b/docs/marketing/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/docs/marketing/assets/CAPTURE.md b/docs/marketing/assets/CAPTURE.md deleted file mode 100644 index 7f45315..0000000 --- a/docs/marketing/assets/CAPTURE.md +++ /dev/null @@ -1,40 +0,0 @@ -# Demo GIF / Video Capture Guide - -Record these on a machine with Vestige v2.1.23 installed and ~20 pre-loaded memories (see `docs/launch/demo-script.md` pre-load section). - -## Prerequisites - -```bash -npm install -g vestige-mcp-server@latest -vestige health -claude mcp add vestige vestige-mcp -s user -open http://localhost:3927/dashboard -``` - -## Assets to produce - -| File | Duration | What to show | -|------|----------|----------------| -| `receipt-lock.gif` | 8–12s loop | Agent claims "tests passed" → Sanhedrin veto → `~/.vestige/sanhedrin/latest.html` receipt | -| `dashboard-dream.gif` | 10–15s loop | Graph view → trigger dream in Claude → purple dream mode, golden connection lines | -| `memory-born.gif` | 5–8s | Feed tab: `MemoryCreated` WebSocket event + new node burst on graph | -| `demo-full.mp4` | 60–90s | Full script: `docs/launch/demo-script.md` Version 2 (3-minute cut to 90s) | - -## macOS capture (recommended) - -```bash -# Screen recording → convert to GIF (install: brew install ffmpeg) -ffmpeg -f avfoundation -i "1" -t 12 -vf "fps=10,scale=1280:-1" -y /tmp/vestige-rec.mov -ffmpeg -i /tmp/vestige-rec.mov -vf "fps=8,scale=960:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 docs/marketing/assets/dashboard-dream.gif -``` - -## Static fallback - -If GIFs are not ready for launch, export one PNG from the dashboard graph view: - -```bash -# Browser screenshot → save as: -docs/marketing/assets/dashboard-static.png -``` - -Commit GIFs when ready; README and landing page reference these paths. diff --git a/docs/marketing/assets/dashboard-placeholder.svg b/docs/marketing/assets/dashboard-placeholder.svg deleted file mode 100644 index 4a50448..0000000 --- a/docs/marketing/assets/dashboard-placeholder.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - Vestige 3D Memory Dashboard - Run vestige dashboard  capture GIF per docs/marketing/assets/CAPTURE.md - - - - - - diff --git a/docs/marketing/demo-video-storyboard.md b/docs/marketing/demo-video-storyboard.md deleted file mode 100644 index 98f2942..0000000 --- a/docs/marketing/demo-video-storyboard.md +++ /dev/null @@ -1,32 +0,0 @@ -# Demo Video Storyboard (60–90s) - -For `docs/marketing/assets/demo-full.mp4` and GIF exports. Full script: [demo-script.md](../../launch/demo-script.md) Version 2. - -## Beat sheet - -| Time | Visual | Audio / text overlay | -|------|--------|----------------------| -| 0:00–0:08 | 3D dashboard graph, nodes pulsing | "Your AI forgets everything between sessions." | -| 0:08–0:18 | Claude Code: "Remember I prefer TypeScript" → Feed: MemoryCreated | "Vestige stores it with prediction error gating — not a dumb bucket." | -| 0:18–0:30 | New session: "What are my language preferences?" → correct answer | "New session. Same brain." | -| 0:30–0:45 | Search → graph nodes pulse blue (spreading activation) | "Search runs a 7-stage cognitive pipeline." | -| 0:45–0:58 | Dream mode: purple wash, golden edges | "Dream consolidation finds connections you never typed." | -| 0:58–1:15 | Terminal: agent says "tests passed" → veto / sanhedrin HTML | "Receipt Lock: no receipt, no claim." | -| 1:15–1:25 | Terminal: install commands | `npm install -g vestige-mcp-server@latest` | -| 1:25–1:30 | Logo / github.com/samvallad33/vestige | "v2.1.23 · local · AGPL" | - -## Export targets - -| Asset | Path | -|-------|------| -| Full video | `docs/marketing/assets/demo-full.mp4` | -| Dashboard loop | `docs/marketing/assets/dashboard-dream.gif` | -| Receipt Lock loop | `docs/marketing/assets/receipt-lock.gif` | -| Memory create | `docs/marketing/assets/memory-born.gif` | - -Capture commands: [assets/CAPTURE.md](assets/CAPTURE.md) - -## Wave usage - -- **Wave A:** Ship `receipt-lock.gif` + beats 0:58–1:15 first -- **Wave B:** Ship `dashboard-dream.gif` + full `demo-full.mp4` diff --git a/docs/marketing/growth-engine/MARKETING-CLAUDE.md b/docs/marketing/growth-engine/MARKETING-CLAUDE.md deleted file mode 100644 index ef3aae0..0000000 --- a/docs/marketing/growth-engine/MARKETING-CLAUDE.md +++ /dev/null @@ -1,69 +0,0 @@ -# Vestige Marketing Agent Protocol - -You are the marketing operator for **Vestige** (v2.1.23). You have access to a **dedicated** Vestige MCP instance (`vestige-marketing` / `VESTIGE_DATA_DIR=~/.vestige-marketing`). Never confuse this with the user's dev memory. - -## Product facts (do not invent stats) - -Read [docs/LAUNCH_STATS.md](../../LAUNCH_STATS.md) before drafting. Current anchors: - -- ~86K LOC Rust, 25 MCP tools, 30 cognitive modules, 1,200+ tests, 22MB binary -- Install: `npm install -g vestige-mcp-server@latest` + `claude mcp add vestige vestige-mcp -s user` -- Wave A hook: **Receipt Lock** — blocks "tests passed" without command receipts -- Wave B product: **FSRS-6 cognitive memory**, dreaming, 3D dashboard -- Comparison: [docs/comparison.md](../../comparison.md) -- Author: Sam Valladares, 22, solo, AGPL-3.0 - -## Session start - -1. `session_context` with query: `vestige marketing launch hooks objections` -2. `deep_reference` if drafting factual claims about features or competitors -3. `contradictions` if messaging might conflict with prior brand guidelines - -## Voice - -- Technical, humble, specific — never "revolutionary", "game-changer", "AI-powered" -- Lead with **pain** (agent amnesia, fake green builds, contradicting memories) -- Reveal **tool** second -- Acknowledge Mem0, native Claude memory, RAG honestly — do not bash -- Neuroscience: cite real papers; admit heuristics where approximate - -## On user feedback - -- Winning hook / post → `memory` promote on that memory -- Flopped angle → `suppress` (not delete) -- New objection → `smart_ingest` with tags `marketing, objection` -- User correction → `smart_ingest` + demote wrong memory if needed - -## Weekly deliverables - -When asked for "weekly content": - -1. **One long-form** (800–1200 words): expand top objection OR one cognitive module OR Receipt Lock story -2. **3–5 short posts** (X/LinkedIn): each ≤280 chars or ≤2 short paragraphs -3. **One Reddit draft** (technical, humble title — pain first) -4. **Metrics summary** paragraph for ingest after user fills tracker - -## Channels (user posts manually) - -You draft only. User sends all posts and DMs to avoid bans and keep authenticity. - -| Channel | Style | -|---------|-------| -| HN | Show HN title ≤80 chars; first comment = full body; science-first | -| Reddit | Personal story + JSON output + install block; no "introducing my startup" | -| X | 8–12 tweet thread; hook tweet must stand alone | -| LinkedIn | Professional, link comparison.md | - -## End of week - -``` -dream with focus on marketing memories tagged vestige-launch from the last 7 days. -Return: top 3 hooks to promote, top 2 to suppress, one recommended post for next week. -``` - -## Hard rules - -- Do not claim Vestige replaces CI/CD or enterprise memory suites -- Do not fabricate download numbers — use metrics-tracker.md only -- Do not tell users `sudo mv` for install unless manual binary path failed -- Always include GitHub link: https://github.com/samvallad33/vestige diff --git a/docs/marketing/growth-engine/README.md b/docs/marketing/growth-engine/README.md deleted file mode 100644 index b2b4af5..0000000 --- a/docs/marketing/growth-engine/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Vestige Marketing Growth Engine - -Repeatable weekly loop: Vestige remembers what worked, Claude Code drafts what’s next, you approve and post manually. - -## One-time setup - -### 1. Dedicated marketing memory store - -```bash -mkdir -p ~/.vestige-marketing -``` - -Add a **second** MCP server entry (do not mix with dev memory): - -```bash -claude mcp add vestige-marketing vestige-mcp -s user \ - --env VESTIGE_DATA_DIR=$HOME/.vestige-marketing -``` - -If your client does not support env on `mcp add`, use a wrapper script: - -```bash -# ~/bin/vestige-mcp-marketing -#!/bin/bash -export VESTIGE_DATA_DIR="$HOME/.vestige-marketing" -exec vestige-mcp "$@" -``` - -### 2. Copy marketing agent instructions - -```bash -cp docs/marketing/growth-engine/MARKETING-CLAUDE.md ~/vestige-marketing-CLAUDE.md -``` - -In Claude Code for marketing sessions, include that file (or paste into project instructions). - -### 3. Seed baseline memories - -Open Claude Code with `vestige-marketing` connected and run: - -``` -Read docs/LAUNCH_STATS.md, docs/comparison.md, and docs/marketing/metrics-tracker.md. -smart_ingest each as separate marketing baseline memories with tags: marketing, baseline, vestige-launch. -``` - -## Weekly loop (≈2 hours) - -| Step | Who | Action | -|------|-----|--------| -| Mon AM | You | Fill `metrics-tracker.md` row | -| Mon | Agent | `session_context` with query "vestige marketing launch" | -| Mon | Agent | Draft 1 long-form + 3–5 shorts from last week's `promote`d hooks | -| Mon | You | Edit and post manually (HN/Reddit/X/LinkedIn) | -| Fri | You | Log engagement URLs + numbers | -| Fri | Agent | `smart_ingest` weekly metrics + objections | -| Fri | Agent | `dream` on tag `vestige-launch` for next week's angles | - -## Tool cheat sheet - -| Goal | Tool | -|------|------| -| Load brand voice + past wins | `session_context` | -| Save post results | `smart_ingest` | -| Recall winning hooks | `search` / `deep_reference` | -| Retire dead angles | `suppress` | -| Boost viral hook | `memory` action=promote | -| Weekly strategy | `dream` | - -## Dogfood story (meta-content) - -> "I use Vestige to market Vestige — marketing memories live in a separate data dir, FSRS promotes hooks that converted, suppress kills angles that flopped." - -Post this on X after Week 2 if metrics show engagement. - -## Files - -| File | Purpose | -|------|---------| -| [MARKETING-CLAUDE.md](MARKETING-CLAUDE.md) | Agent protocol | -| [../metrics-tracker.md](../metrics-tracker.md) | Weekly numbers | -| [../wave-a-launch.md](../wave-a-launch.md) | Receipt Lock execution | -| [../wave-b-launch.md](../wave-b-launch.md) | Memory wave execution | -| [../../launch/receipt-lock.md](../../launch/receipt-lock.md) | Wave A copy | -| [../../comparison.md](../../comparison.md) | Argument anchor | diff --git a/docs/marketing/mcp-registries.md b/docs/marketing/mcp-registries.md deleted file mode 100644 index aaa7a98..0000000 --- a/docs/marketing/mcp-registries.md +++ /dev/null @@ -1,57 +0,0 @@ -# MCP Registry & Directory Submissions - -Passive install channel — update listings whenever v2.1.x ships. Check off as you submit. - -## Submission packet (reuse everywhere) - -| Field | Value | -|-------|-------| -| Name | Vestige | -| Slug | `io.github.samvallad33/vestige` (npm `mcpName`) | -| Description | Local cognitive memory for MCP agents — FSRS-6 spaced repetition, prediction error gating, memory dreaming, 3D dashboard, optional Receipt Lock for agent verification claims. | -| Install | `npm install -g vestige-mcp-server@latest` then `claude mcp add vestige vestige-mcp -s user` | -| Repo | https://github.com/samvallad33/vestige | -| Homepage | https://samvallad33.github.io/vestige/ | -| License | AGPL-3.0-only | -| Transport | stdio (default); HTTP opt-in | -| Version | 2.1.23 | -| Tags | memory, mcp, claude, cursor, local-first, fsrs, neuroscience, rust | - -## Registries - -| Directory | URL | Status | Notes | -|-----------|-----|--------|-------| -| Glama | https://glama.ai/mcp/servers | [ ] Submit / refresh | Ownership metadata in repo (`cd496e5`) | -| mcp.so | https://mcp.so | [ ] Submit | Use submission packet | -| Smithery | https://smithery.ai | [ ] Submit | npm package + stdio command | -| PulseMCP | https://www.pulsemcp.com | [ ] Submit | | -| Awesome MCP Servers | https://github.com/punkpeye/awesome-mcp-servers | [ ] PR | Add under Memory / Knowledge | -| modelcontextprotocol/servers | https://github.com/modelcontextprotocol/servers | [ ] PR if accepted | Follow their CONTRIBUTING | -| Cursor directory | docs/integrations/cursor.md | [x] Doc exists | Link from Cursor forum / Discord | -| VS Code marketplace | N/A for MCP stdio | [ ] N/A | Use integrations/vscode.md in posts | - -## Awesome-MCP PR snippet - -```markdown -### Vestige -- **Description:** Local cognitive memory — FSRS-6 decay, dreaming, contradiction tools, optional Receipt Lock -- **Install:** `npm install -g vestige-mcp-server@latest` -- **Command:** `vestige-mcp` -- **Repo:** https://github.com/samvallad33/vestige -``` - -## After each listing goes live - -```bash -# Ingest into marketing Vestige -smart_ingest: "Listed Vestige on [REGISTRY] at [URL]. Version 2.1.23." -tags: marketing, registry, vestige-launch -``` - -## Editor-specific posts (optional) - -| Community | Action | -|-----------|--------| -| Cursor Discord #showcase | Link comparison.md + 30s dashboard GIF | -| Claude Code GitHub discussions | Receipt Lock angle + install | -| r/mcp | Neutral "new server" post after Wave B | diff --git a/docs/marketing/metrics-tracker.md b/docs/marketing/metrics-tracker.md deleted file mode 100644 index d995ba9..0000000 --- a/docs/marketing/metrics-tracker.md +++ /dev/null @@ -1,66 +0,0 @@ -# Vestige Growth Metrics Tracker - -**North star:** weekly `vestige-mcp-server` npm installs + evidence of active MCP connections (issues, "it works" posts). - -Update every **Monday**. Feed summary into marketing Vestige via `smart_ingest`. - -## How to fetch numbers - -```bash -# npm weekly downloads (approximate) -npm view vestige-mcp-server - -# GitHub stars -gh api repos/samvallad33/vestige --jq .stargazers_count - -# Optional: npm download chart -# https://www.npmjs.com/package/vestige-mcp-server -``` - -## Weekly log template - -Copy a row per week: - -| Week ending | npm downloads (total) | Stars | Stars Δ | Top channel | Top hook | Installs anecdote | Notes | -|-------------|----------------------|-------|---------|-------------|----------|-------------------|-------| -| 2026-06-02 | TBD | 542 | 0 | pre-launch | Receipt Lock / fake tests passed | setup complete | marketing instance seeded, ready for Wave A | -| 2026-06-09 | | | | | | | post Wave A week 1 | - -## Per-post log template - -| Date | Wave | Channel | Post URL | Engagement | Stars Δ (48h) | Objections | Action | -|------|------|---------|----------|------------|---------------|------------|--------| -| | A | HN | | | | | | - -## Objection → content flywheel - -When the same objection appears 3+ times, promote to permanent doc: - -| Objection | Response doc | -|-----------|----------------| -| "Isn't this just RAG?" | [comparison.md](../comparison.md) | -| "Claude has memory now" | comparison.md + Receipt Lock section | -| "AGPL?" | README + HN FAQ in show-hn.md | -| "77K LOC over-engineered" | show-hn.md FAQ | -| "FSRS gimmick?" | [SCIENCE.md](../SCIENCE.md) | - -## Agent ingest prompt (weekly) - -``` -smart_ingest: Vestige marketing week ending YYYY-MM-DD. -npm: X total (ΔY). Stars: N (ΔZ). -Best channel: [HN/Reddit/X]. -Best hook: [phrase]. -Top objection: [text]. -Next week: [one action]. -tags: marketing, metrics, vestige-launch -``` - -## Goals (first 8 weeks) - -| Milestone | Target | -|-----------|--------| -| Wave A HN front page | 100+ points | -| Stars | 542 → 800+ | -| npm weekly downloads | 2× baseline | -| Registry listings | 5+ MCP directories | diff --git a/docs/marketing/ready-to-post/hn-first-comment.txt b/docs/marketing/ready-to-post/hn-first-comment.txt deleted file mode 100644 index ba24fb5..0000000 --- a/docs/marketing/ready-to-post/hn-first-comment.txt +++ /dev/null @@ -1,32 +0,0 @@ -Hi HN, - -Your coding agent probably ends sessions with something like "all tests passed" or -"the build is green." I kept trusting that — until it wasn't true. - -I built Receipt Lock in Vestige (an MCP memory server I maintain). Before operational -claims become part of the final answer, Vestige checks them against structured -command receipts from the current transcript. No matching successful receipt → the -claim can be blocked and a local veto receipt is written (JSON + HTML under -~/.vestige/sanhedrin/). - -**What it is:** Optional Claude Code Cognitive Sandwich hooks + local MCP server. -Not cloud. Not "trust me bro" logging — inspectable receipts on disk. - -**Install (memory server — required base):** -npm install -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user - -**Enable Receipt Lock (optional):** -vestige sandwich install --enable-sanhedrin - -Sanhedrin verifier can point at any OpenAI-compatible endpoint (Ollama, MLX, hosted API). - -**And it also does real memory:** FSRS-6 spaced repetition, prediction error gating, -memory dreaming, 3D dashboard at localhost:3927. ~86K LOC Rust, 25 MCP tools, 1,200+ -tests, 22MB binary. 100% local after first embedding download. - -I'm 22, solo, AGPL-3.0. Repo: https://github.com/samvallad33/vestige -Comparison: https://github.com/samvallad33/vestige/blob/main/docs/comparison.md -Landing: https://samvallad33.github.io/vestige/ - -Happy to discuss false positive tuning, Sanhedrin presets, or why receipts beat vibes. diff --git a/docs/marketing/ready-to-post/hn-title.txt b/docs/marketing/ready-to-post/hn-title.txt deleted file mode 100644 index f01f5d8..0000000 --- a/docs/marketing/ready-to-post/hn-title.txt +++ /dev/null @@ -1 +0,0 @@ -Show HN: Vestige – blocks coding agents from claiming "tests passed" without receipts diff --git a/docs/marketing/ready-to-post/reddit-experienceddevs-title.txt b/docs/marketing/ready-to-post/reddit-experienceddevs-title.txt deleted file mode 100644 index 3aab4ba..0000000 --- a/docs/marketing/ready-to-post/reddit-experienceddevs-title.txt +++ /dev/null @@ -1 +0,0 @@ -My coding agent kept saying "tests passed" when they hadn't. I added a receipt check before the summary ships. diff --git a/docs/marketing/ready-to-post/reddit-experienceddevs.md b/docs/marketing/ready-to-post/reddit-experienceddevs.md deleted file mode 100644 index 410f87b..0000000 --- a/docs/marketing/ready-to-post/reddit-experienceddevs.md +++ /dev/null @@ -1,19 +0,0 @@ -**TL;DR:** Vestige Receipt Lock checks operational claims ("tests passed", "build green", "lint clean") against structured command receipts from the transcript. No receipt → block + local veto artifact. - -**The failure mode:** Agent runs partial checks, or hallucinates a green ending. You merge. CI breaks. You've seen this. - -**The fix:** Optional hooks (`vestige sandwich install --enable-sanhedrin`) + MCP memory server. When the model tries to assert verification without evidence, Vestige can veto and write `~/.vestige/sanhedrin/latest.html` so you can inspect what happened. - -**Not a replacement for CI.** It's a last-mile guard on *agent-authored* summaries in Claude Code. - -**Stack:** Rust, local, MCP. Same project also does FSRS-6 cognitive memory (decay, dreaming, contradiction tools) — I'll post that angle separately if people want the science side. - -```bash -npm install -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user -vestige sandwich install --enable-sanhedrin -``` - -GitHub: https://github.com/samvallad33/vestige - -What false positives are you seeing with agent verification claims? Curious if this matches your workflow. diff --git a/docs/marketing/ready-to-post/x-thread.txt b/docs/marketing/ready-to-post/x-thread.txt deleted file mode 100644 index cc81fec..0000000 --- a/docs/marketing/ready-to-post/x-thread.txt +++ /dev/null @@ -1,18 +0,0 @@ -1/8 Your coding agent ends with "tests passed." Did it run tests? Or did it summarize hope? - -2/8 I ship Receipt Lock in Vestige — checks operational claims against command receipts from the transcript. - -3/8 No matching successful receipt → claim blocked. Local veto receipt: ~/.vestige/sanhedrin/latest.html - -4/8 Optional hooks. Local MCP server. Not cloud analytics. - -5/8 -npm i -g vestige-mcp-server@latest -claude mcp add vestige vestige-mcp -s user -vestige sandwich install --enable-sanhedrin - -6/8 Same binary also does FSRS-6 memory — decay, dreaming, 3D brain viz. Thread on that tomorrow. - -7/8 22yo solo dev. AGPL. https://github.com/samvallad33/vestige - -8/8 What's the worst "green build" lie your agent told you? Reply — building the FAQ from real stories. diff --git a/docs/marketing/wave-a-launch.md b/docs/marketing/wave-a-launch.md deleted file mode 100644 index 74303d6..0000000 --- a/docs/marketing/wave-a-launch.md +++ /dev/null @@ -1,47 +0,0 @@ -# Wave A — Execution Checklist - -Copy-paste from [docs/launch/receipt-lock.md](../launch/receipt-lock.md). **You post manually.** - -## Pre-flight - -- [x] `docs/LAUNCH_STATS.md` numbers match README -- [x] `vestige health` passes on your machine -- [ ] GitHub Pages live: https://samvallad33.github.io/vestige/ (after `git push` + Pages enabled) -- [x] GIFs captured OR placeholder SVG acceptable for Wave A -- [x] Marketing Vestige seeded: `./scripts/marketing/setup-marketing-instance.sh` -- [ ] Ingest Wave A URLs after posting (see LAUNCH_NOW.md) - -## Day 1 — HN + Lobsters - -| Time (ET) | Channel | Artifact | -|-----------|---------|----------| -| 8:00 AM Tue/Wed | Hacker News Show HN | Title + first comment from `receipt-lock.md` | -| +30 min | Lobste.rs | Shorter HN body | -| 8:00–11:00 AM | HN comments | 30-min reply SLA | - -## Day 1–2 — Reddit + X - -| Time | Channel | Artifact | -|------|---------|----------| -| +1h | r/ExperiencedDevs | Full post in `receipt-lock.md` | -| +2h | r/programming | Same + stats line | -| +0h (parallel) | X thread | 8 tweets in `receipt-lock.md` | -| Pin | X profile | Thread link during HN peak | - -## Metrics to log (→ `metrics-tracker.md`) - -| Field | Value | -|-------|-------| -| Date | | -| Channel | | -| URL | | -| Upvotes / points | | -| Comments | | -| npm downloads (week delta) | | -| Stars delta (48h) | | -| Top objection | | -| Winning hook phrase | | - -## After Wave A - -Wait **48h** from HN peak, then run [wave-b-launch.md](wave-b-launch.md). diff --git a/docs/marketing/wave-b-launch.md b/docs/marketing/wave-b-launch.md deleted file mode 100644 index 8f1084e..0000000 --- a/docs/marketing/wave-b-launch.md +++ /dev/null @@ -1,45 +0,0 @@ -# Wave B — Execution Checklist - -Memory / neuroscience product wave. Cross-link Wave A HN thread if it performed. - -Sources: [show-hn.md](../launch/show-hn.md) (refresh before posting), [demo-script.md](../launch/demo-script.md), [comparison.md](../comparison.md). - -## Pre-flight - -- [ ] Dashboard GIF live (`docs/marketing/assets/dashboard-dream.gif`) -- [ ] 20 pre-loaded memories per demo-script pre-demo checklist -- [ ] Wave A metrics logged in `metrics-tracker.md` - -## Day 3 — Show HN (memory angle) OR skip if Wave A HN was same week - -If Wave A used Show HN title for Receipt Lock, **do not** second Show HN same week. Use Reddit + X only for Wave B. - -| Channel | Focus | -|---------|-------| -| r/ClaudeAI | MCP memory, FSRS-6, dashboard, 2-min install | -| r/LocalLLaMA | Local-first, zero cloud, ONNX embeddings | -| r/rust | Architecture, 86K LOC, 25 tools, zero unsafe | - -## Day 4–5 — Content - -| Channel | Artifact | -|---------|----------| -| X | 10-tweet thread: "RAG is not memory" + FSRS + dream GIF | -| LinkedIn | Link to comparison.md + dashboard GIF | -| Blog | Optional: publish refreshed `docs/launch/blog-post.md` on dev.to / personal site | - -## r/ClaudeAI title (v2.1.23) - -``` -Vestige v2.1.23 — FSRS-6 memory for Claude Code + optional Receipt Lock when agents fake "tests passed" -``` - -Body: Use r/ClaudeAI section from refreshed `show-hn.md` + install block from LAUNCH_STATS. - -## Cross-link line (if Wave A performed) - -> Earlier this week I posted about Receipt Lock (agents claiming tests passed without receipts). Same project — the memory engine underneath: [link] - -## Metrics - -Same table as wave-a-launch.md. Tag `wave=B` in marketing Vestige ingest. diff --git a/docs/website/index.html b/docs/website/index.html deleted file mode 100644 index 7246339..0000000 --- a/docs/website/index.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - Vestige — Local memory and receipts for AI agents - - - - - - -
-

- v2.1.23 - 25 MCP tools - ~86K LOC Rust - AGPL-3.0 -

- -

Your agent forgets yesterday.
It can lie about today.

-

Vestige is a local MCP memory server: real FSRS-6 forgetting and consolidation, plus optional Receipt Lock that blocks “tests passed” without command receipts.

- -
npm install -g vestige-mcp-server@latest
-claude mcp add vestige vestige-mcp -s user
- GitHub → - -

Wave A: Receipt Lock

-
Coding agents finish with confident summaries. Vestige checks operational claims against structured command receipts before they become your final answer.
-

If the agent claims verification happened but no matching successful receipt exists, the claim can be blocked and an inspectable local veto is written to ~/.vestige/sanhedrin/.

-
vestige sandwich install --enable-sanhedrin
-

Receipt Lock docs

- -

Wave B: A brain, not a bucket

- Vestige 3D memory dashboard -

Memories decay on FSRS-6 curves. Search strengthens them (Testing Effect). dream consolidates offline. The 3D dashboard shows pulses, connections, and dream replay in real time.

-

vestige dashboardlocalhost:3927/dashboard

- -

Vestige vs the rest

- - - - - - - - - -
RAGNative AI memoryVestige
ForgettingNoneOpaqueFSRS-6
Local / privateVariesCloud100% local
ContradictionsBoth chunksNodeep_reference
Fake “tests passed”N/AN/AReceipt Lock
VisualizationNoneNone3D graph
-

Full comparison (Mem0, RAG, native)

- -

Install

-
npm install -g vestige-mcp-server@latest
-vestige health
-claude mcp add vestige vestige-mcp -s user
-

Also works with Codex, Cursor, VS Code Copilot, JetBrains, Windsurf, Xcode. See integration guides.

- - -
- - diff --git a/package.json b/package.json index 1057869..9d759a6 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,7 @@ "license": "AGPL-3.0-only", "repository": { "type": "git", - "url": "https://github.com/samvallad33/vestige", - "homepage": "https://samvallad33.github.io/vestige/" + "url": "https://github.com/samvallad33/vestige" }, "scripts": { "build:mcp": "cargo build --release --package vestige-mcp", diff --git a/packages/vestige-mcp-npm/README.md b/packages/vestige-mcp-npm/README.md index b7a01c2..98e6575 100644 --- a/packages/vestige-mcp-npm/README.md +++ b/packages/vestige-mcp-npm/README.md @@ -1,12 +1,8 @@ # vestige-mcp-server -**v2.1.23** — Vestige MCP Server: local cognitive memory and optional Receipt Lock for MCP-compatible AI agents. +Vestige MCP Server - A synthetic hippocampus for AI assistants. -- **Memory:** FSRS-6 spaced repetition, prediction error gating, dreaming, 3D dashboard -- **Receipt Lock:** blocks "tests passed" / "build green" without command receipts (optional hooks) -- **Stats:** ~86K LOC Rust · 25 tools · 1,200+ tests · 22MB binary · 100% local - -Homepage: https://samvallad33.github.io/vestige/ · Repo: https://github.com/samvallad33/vestige +Built on 130 years of cognitive science research, Vestige provides biologically-inspired memory that decays, strengthens, and consolidates like the human mind. ## Installation @@ -58,25 +54,6 @@ codex mcp add vestige -- vestige-mcp Then restart your MCP client. -## Optional Receipt Lock for Claude Code - -Receipt Lock is part of Vestige's optional Cognitive Sandwich hook layer. Normal -MCP memory stays lightweight and local. If you want claim checking for summaries -like "tests passed" or "lint is clean," enable Sanhedrin and point it at any -OpenAI-compatible chat endpoint: - -```bash -vestige sandwich install --enable-sanhedrin - -vestige sandwich install \ - --enable-sanhedrin \ - --sanhedrin-endpoint=http://127.0.0.1:11434/v1/chat/completions \ - --sanhedrin-model=qwen2.5:14b -``` - -If a claim is missing command evidence, Vestige writes local receipts under -`~/.vestige/sanhedrin/` so the veto is inspectable instead of opaque. - ## Usage with Claude Desktop Add to your Claude Desktop configuration: @@ -109,7 +86,6 @@ vestige sandwich install # Manage optional Claude Code hook files ## Features - **FSRS-6 Algorithm**: State-of-the-art spaced repetition for optimal memory retention -- **Receipt Lock**: Optional command-receipt checking for test/build/lint/typecheck claims - **Dual-Strength Memory**: Bjork & Bjork (1992) - Storage + Retrieval strength model - **Synaptic Tagging**: Memories become important retroactively (Frey & Morris 1997) - **Semantic Search**: Local embeddings via nomic-embed-text-v1.5 (768 dimensions) diff --git a/packages/vestige-mcp-npm/package.json b/packages/vestige-mcp-npm/package.json index 272681e..1ff860f 100644 --- a/packages/vestige-mcp-npm/package.json +++ b/packages/vestige-mcp-npm/package.json @@ -29,7 +29,6 @@ "type": "git", "url": "git+https://github.com/samvallad33/vestige.git" }, - "homepage": "https://samvallad33.github.io/vestige/", "engines": { "node": ">=18" }, diff --git a/scripts/marketing/preflight.sh b/scripts/marketing/preflight.sh deleted file mode 100755 index 590464a..0000000 --- a/scripts/marketing/preflight.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -# Pre-launch checks before Wave A posts. -set -euo pipefail - -ROOT="$(cd "$(dirname "$0")/../.." && pwd)" -cd "${ROOT}" - -FAIL=0 -pass() { echo "OK $1"; } -fail() { echo "FAIL $1"; FAIL=1; } - -echo "=== Vestige Launch Preflight ===" - -command -v vestige-mcp >/dev/null && pass "vestige-mcp on PATH" || fail "vestige-mcp not found" -command -v npm >/dev/null && pass "npm available" || fail "npm missing" - -VER="$(vestige-mcp --version 2>/dev/null || true)" -[[ "${VER}" == *"2.1."* ]] && pass "version ${VER}" || fail "unexpected version: ${VER}" - -vestige health >/dev/null 2>&1 && pass "vestige health" || fail "vestige health failed" - -[[ -f docs/LAUNCH_STATS.md ]] && pass "LAUNCH_STATS.md" || fail "missing LAUNCH_STATS.md" -[[ -f docs/launch/receipt-lock.md ]] && pass "receipt-lock.md" || fail "missing receipt-lock.md" -[[ -f docs/website/index.html ]] && pass "landing page source" || fail "missing website" -[[ -f .github/workflows/pages.yml ]] && pass "pages workflow" || fail "missing pages workflow" - -if curl -sf --max-time 5 "https://samvallad33.github.io/vestige/" >/dev/null 2>&1; then - pass "GitHub Pages live" -else - echo "WARN GitHub Pages not live yet — push main and enable Pages → GitHub Actions" -fi - -MARKETING_DIR="${HOME}/.vestige-marketing" -if [[ -d "${MARKETING_DIR}" ]]; then - pass "marketing data dir exists" -else - echo "WARN run scripts/marketing/setup-marketing-instance.sh" -fi - -echo "" -if [[ "${FAIL}" -eq 0 ]]; then - echo "Preflight PASSED — ready for Wave A" - exit 0 -else - echo "Preflight FAILED — fix items above" - exit 1 -fi diff --git a/scripts/marketing/seed-baseline-memories.sh b/scripts/marketing/seed-baseline-memories.sh deleted file mode 100755 index 9b2a384..0000000 --- a/scripts/marketing/seed-baseline-memories.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash -# Seed marketing Vestige with launch facts (separate from dev memory). -set -euo pipefail - -MARKETING_DIR="${VESTIGE_MARKETING_DIR:-$HOME/.vestige-marketing}" -TAGS="marketing,baseline,vestige-launch" - -ingest() { - vestige ingest "$1" --data-dir "${MARKETING_DIR}" --tags "${TAGS}" --node-type note -} - -echo "Seeding into ${MARKETING_DIR}..." - -ingest "Vestige v2.1.23 launch stats: ~86K LOC Rust, 25 MCP tools, 30 cognitive modules, 1200+ tests, 22MB binary, AGPL-3.0, npm vestige-mcp-server@latest, homepage samvallad33.github.io/vestige" - -ingest "Wave A hook Receipt Lock: block operational claims like tests passed or build green unless matching command receipts exist. Optional vestige sandwich install --enable-sanhedrin. Veto receipts at ~/.vestige/sanhedrin/" - -ingest "Wave B product: FSRS-6 spaced repetition memory, prediction error gating, memory dreaming, 3D dashboard localhost:3927, deep_reference contradictions, 100 percent local after embedding download" - -ingest "Canonical install: npm install -g vestige-mcp-server@latest && vestige health && claude mcp add vestige vestige-mcp -s user. Do NOT tell users sudo mv unless manual binary install failed." - -ingest "Messaging guardrails: no revolutionary game-changer AI-powered. Acknowledge Mem0 RAG native Claude memory honestly. Lead pain first tool second. Author Sam Valladares age 22 solo." - -ingest "North star metric: weekly npm installs vestige-mcp-server and active MCP connections not stars alone. Track in docs/marketing/metrics-tracker.md" - -ingest "Comparison anchor docs/comparison.md: RAG is retrieval, Vestige is cognitive lifecycle with forgetting consolidation Receipt Lock. Mem0 is cloud API Vestige is local AGPL." - -vestige stats --data-dir "${MARKETING_DIR}" 2>/dev/null || true -echo "Baseline seed complete." diff --git a/scripts/marketing/setup-marketing-instance.sh b/scripts/marketing/setup-marketing-instance.sh deleted file mode 100755 index e465c06..0000000 --- a/scripts/marketing/setup-marketing-instance.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -# One-time setup: dedicated Vestige store + Claude Code MCP entry for marketing. -set -euo pipefail - -MARKETING_DIR="${VESTIGE_MARKETING_DIR:-$HOME/.vestige-marketing}" -BIN_DIR="${HOME}/.local/bin" -WRAPPER="${BIN_DIR}/vestige-mcp-marketing" - -echo "==> Marketing data dir: ${MARKETING_DIR}" -mkdir -p "${MARKETING_DIR}" - -if ! command -v vestige-mcp >/dev/null 2>&1; then - echo "Install Vestige first: npm install -g vestige-mcp-server@latest" - exit 1 -fi - -mkdir -p "${BIN_DIR}" -cat > "${WRAPPER}" < Wrapper: ${WRAPPER}" - -if command -v claude >/dev/null 2>&1; then - if claude mcp list 2>/dev/null | grep -q vestige-marketing; then - echo "==> claude mcp: vestige-marketing already registered" - else - claude mcp add vestige-marketing "${WRAPPER}" -s user - echo "==> Added: claude mcp add vestige-marketing ${WRAPPER} -s user" - fi -else - echo "==> Claude Code not found — register manually:" - echo " claude mcp add vestige-marketing ${WRAPPER} -s user" -fi - -echo "==> Seeding baseline memories..." -"$(dirname "$0")/seed-baseline-memories.sh" - -echo "" -echo "Done. Open Claude Code with MARKETING-CLAUDE.md:" -echo " cp docs/marketing/growth-engine/MARKETING-CLAUDE.md ~/vestige-marketing-CLAUDE.md" -echo " vestige health --data-dir ${MARKETING_DIR}"