diff --git a/.github/workflows/publish-mcp-registry.yml b/.github/workflows/publish-mcp-registry.yml new file mode 100644 index 0000000..e7ef5c6 --- /dev/null +++ b/.github/workflows/publish-mcp-registry.yml @@ -0,0 +1,41 @@ +name: Publish to MCP Registry + +on: + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Verify npm package is published + run: | + LOCAL_VERSION="$(node -p "require('./package.json').version")" + PUBLISHED_VERSION="$(npm view @memi-design/cli@"${LOCAL_VERSION}" version)" + if [ "${PUBLISHED_VERSION}" != "${LOCAL_VERSION}" ]; then + echo "::error::@memi-design/cli@${LOCAL_VERSION} is not available on npm" + exit 1 + fi + node -e "const p=require('./package.json'); const s=require('./server.json'); if (p.mcpName !== s.name) throw new Error('mcpName/server.json mismatch');" + + - name: Install mcp-publisher + run: | + curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher + ./mcp-publisher --help + + - name: Validate server.json + run: ./mcp-publisher validate server.json + + - name: Authenticate to MCP Registry + run: ./mcp-publisher login github-oidc + + - name: Publish server.json + run: ./mcp-publisher publish server.json diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml index a388df8..38735d1 100644 --- a/.github/workflows/release-binaries.yml +++ b/.github/workflows/release-binaries.yml @@ -122,8 +122,8 @@ jobs: build-args: | VERSION=${{ github.ref_name }} tags: | - ghcr.io/sarveshsea/memoire:latest - ghcr.io/sarveshsea/memoire:${{ github.ref_name }} + ghcr.io/sarveshsea/memi:latest + ghcr.io/sarveshsea/memi:${{ github.ref_name }} publish-homebrew: needs: publish-checksums @@ -150,7 +150,7 @@ jobs: echo "HOMEBREW_TAP_TOKEN secret not configured — skipping tap push" exit 0 fi - git clone "https://x-access-token:${GH_TOKEN}@github.com/sarveshsea/homebrew-memoire.git" tap + git clone "https://x-access-token:${GH_TOKEN}@github.com/sarveshsea/homebrew-memi.git" tap mkdir -p tap/Formula cp memoire.rb tap/Formula/memoire.rb cd tap diff --git a/CHANGELOG.md b/CHANGELOG.md index 529c7fd..477f6af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This changelog tracks Mémoire itself: every version, commit, and architectural ## Unreleased +## v1.0.1 — 2026-05-12 + +### Docs +- README install section now lists pnpm and yarn variants alongside npm (single bash block, three lines). + +### Packaging +- Exclude `plugin/*.png` from the npm tarball — prevents stray local screenshots in the plugin folder from blowing past the size gate. + ## v1.0.0 — 2026-05-10 ### Rebrand and stability commitment diff --git a/README.md b/README.md index b9bed3e..8bdc5f8 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,9 @@ memi shadcn export --out public/r # publish a shadcn-native registry --- -### Install Mémoire into your AI agent +### Install memi into your AI agent -`0.16.3` ships native agent kits and the first native-runtime trust patch inside the npm package. Install Memoire once, initialize the workspace suite manifest, warm the shared daemon, then give Hermes agents, OpenClaw bots, Claude Code, Cursor, Codex, and OpenCode the same design-system memory, Figma bridge context, Atomic Design rules, shadcn/ui codegen, Tailwind diagnostics, and research-backed UI audit flow. +memi ships native agent kits and the first native-runtime trust patch inside the npm package. Install memi once, initialize the workspace suite manifest, warm the shared daemon, then give Hermes agents, OpenClaw bots, Claude Code, Cursor, Codex, and OpenCode the same design-system memory, Figma bridge context, Atomic Design rules, shadcn/ui codegen, Tailwind diagnostics, and research-backed UI audit flow. ```bash npm i -g @memi-design/cli @@ -68,23 +68,23 @@ Hermes and OpenClaw receive `memoire-design-tooling` `SKILL.md` packages. Claude | Agent | Native install target | What it unlocks | |-------|-----------------------|-----------------| -| Hermes | `~/.hermes/skills/memoire/memoire-design-tooling/SKILL.md` | Hermes loads Memoire as a design-system skill for UI, Figma, specs, and research runs. | +| Hermes | `~/.hermes/skills/memoire/memoire-design-tooling/SKILL.md` | Hermes loads memi as a design-system skill for UI, Figma, specs, and research runs. | | OpenClaw | `/skills/memoire/memoire-design-tooling/SKILL.md` | OpenClaw picks up a workspace skill with `memi` install metadata for ClawHub-style agent use. | | Claude Code | `.mcp.json` | Project MCP config for `memi mcp start --no-figma`; Claude Code asks to approve project MCP servers from `.mcp.json`. | -| Cursor | `.cursor/mcp.json` | Cursor MCP config for Memoire design-system tools. | +| Cursor | `.cursor/mcp.json` | Cursor MCP config for memi design-system tools. | | Codex skill | `~/.codex/skills/memoire/memoire-design-tooling/SKILL.md` | Skill-only instructions for design audits, Figma context, specs, and Tailwind/shadcn workflows. | -| Codex plugin | `~/plugins/memoire` + `~/.agents/plugins/marketplace.json` | Full Codex plugin with the Memoire skill and MCP server wiring. | +| Codex plugin | `~/plugins/memoire` + `~/.agents/plugins/marketplace.json` | Full Codex plugin with the memi skill and MCP server wiring. | | OpenCode | workspace skill pack | Agent-native instructions for design audits, Figma context, specs, and Tailwind/shadcn workflows. | #### Public Codex plugin marketplace -Memoire also ships as a Git-backed Codex marketplace so users can install it from `/plugins` without waiting for the official Codex Plugin Directory: +memi also ships as a Git-backed Codex marketplace so users can install it from `/plugins` without waiting for the official Codex Plugin Directory: ```bash codex plugin marketplace add sarveshsea/memi --ref main --sparse .agents/plugins --sparse plugins/memoire ``` -Then open `/plugins` in Codex and install Memoire from the marketplace list. The same plugin is available through npm for users who already have `memi`: +Then open `/plugins` in Codex and install memi from the marketplace list. The same plugin is available through npm for users who already have `memi`: ```bash npm i -g @memi-design/cli @@ -93,32 +93,29 @@ memi agent install codex-plugin See [`docs/CODEX_PLUGIN.md`](./docs/CODEX_PLUGIN.md) and the public plugin page at `https://www.memoire.cv/codex-plugin`. -### Mémoire Studio for macOS +### memi Studio for macOS -`0.16.3` includes Mémoire Studio: a macOS agent workbench and local web shell for Claude Code, Codex, Hermes, OpenCode, Ollama, Gemini, Mémoire Native, project memory, the Figma bridge, and an in-app Marketplace for Mémoire Notes. The desktop app includes a native Agent Kits panel so you can dry-run, install, and force-refresh Hermes/OpenClaw/Claude/Cursor/Codex/OpenCode kits without leaving Studio. Studio and the CLI share the same daemon-aware install path, suite manifest, project memory, harness metadata, and MCP startup guidance. +The macOS app now lives in its own repo: [github.com/sarveshsea/memi-studio](https://github.com/sarveshsea/memi-studio). This npm package owns the engine/runtime it embeds: harness metadata, project memory, the Figma bridge, Agent Kits, and the local Studio web/TUI surfaces. The desktop app stays minimalist; the engine stays powerful and scriptable. ```bash -# web/TUI workflows from npm +# engine-backed web/TUI workflows from npm memi studio web --port 1422 memi studio tui memi studio logs --follow memi studio run --harness codex --action design-doc --prompt "Audit this UI and generate a design spec" -# local macOS app build -npm run studio:build -open "apps/studio/src-tauri/target/release/bundle/dmg/Mémoire Studio_0.16.3_aarch64.dmg" - -# signed and notarized direct DMG release -npm run studio:release:macos - memi video create "Launch story" --adapter remotion --prompt "Product motion system" ``` -Tagged GitHub Releases attach signed and notarized DMGs when Apple release secrets are configured. See [docs/STUDIO_MACOS_RELEASE.md](docs/STUDIO_MACOS_RELEASE.md). +Download the signed macOS app from [memi-studio releases](https://github.com/sarveshsea/memi-studio/releases/latest), or install it with Homebrew: + +```bash +brew install --cask sarveshsea/memi/memi-studio +``` ### Product Scenario Lab -Memoire includes a clean-room product simulation layer for research-backed spec work. `memi simulate` maps `research/store.v2.json` into personas, variables, graph edges, model-swarm transcripts, interviews, reports, and spec-impact artifacts. Studio exposes the same flow through the `simulate` action and Scenario Lab so Codex, Claude Code, Hermes, OpenCode, Ollama, OpenAI-compatible providers, and deterministic fallback can operate from the macOS workbench. +memi includes a clean-room product simulation layer for research-backed spec work. `memi simulate` maps `research/store.v2.json` into personas, variables, graph edges, model-swarm transcripts, interviews, reports, and spec-impact artifacts. Studio exposes the same flow through the `simulate` action and Scenario Lab so Codex, Claude Code, Hermes, OpenCode, Ollama, OpenAI-compatible providers, and deterministic fallback can operate from the macOS workbench. ```bash memi research synthesize @@ -142,7 +139,7 @@ The npm package does not vendor MiroFish source. The optional `--adapter mirofis ### Research Vibe Design + FigJam Export -Product agents can now turn `research/store.v2.json` and optional Scenario Lab reports into full Atomic Design specs plus Mermaid Jam-ready FigJam source. The first delivery path is source + open: Memoire writes Mermaid/markdown artifacts under `.memoire/mermaid-jam//` and opens Mermaid Jam when requested; it does not automate clipboard or direct paste. +Product agents can now turn `research/store.v2.json` and optional Scenario Lab reports into full Atomic Design specs plus Mermaid Jam-ready FigJam source. The first delivery path is source + open: memi writes Mermaid/markdown artifacts under `.memoire/mermaid-jam//` and opens Mermaid Jam when requested; it does not automate clipboard or direct paste. ```bash memi research synthesize @@ -164,14 +161,14 @@ npx shadcn@latest add https://your-site.com/r/button.json # v0 / AI-editor context memi shadcn serve --port 4014 -# Mémoire install path with aliases, npm packages, URLs, GitHub, or local paths +# memi install path with aliases, npm packages, URLs, GitHub, or local paths memi registry install Button --from @you/ds memi add Button --from ./public/r ``` ## No Figma required -Most developer teams do not start in Figma. Memoire reads the codebase directly: Tailwind classes, shadcn usage, CSS variables, routes, markup, repeated literals, dark-mode coverage, token aliases, component targets, and registry shape. +Most developer teams do not start in Figma. memi reads the codebase directly: Tailwind classes, shadcn usage, CSS variables, routes, markup, repeated literals, dark-mode coverage, token aliases, component targets, and registry shape. ```bash # Diagnose an existing app from code @@ -194,7 +191,7 @@ Reports are written to `.memoire/app-quality/diagnosis.{json,md}` and token extr ## Trust defaults -The public npm package does not run install-time lifecycle scripts. Figma plugin installation is explicit with `memi setup plugin`, and repairs are explicit with `memi doctor --repair-plugin`. The default packaged Figma plugin disables raw JavaScript execution; agents should use typed Memoire Figma tools, MCP tools, suite recipes, and local commands that the user can inspect. +The public npm package does not run install-time lifecycle scripts. Figma plugin installation is explicit with `memi setup plugin`, and repairs are explicit with `memi doctor --repair-plugin`. The default packaged Figma plugin disables raw JavaScript execution; agents should use typed memi Figma tools, MCP tools, suite recipes, and local commands that the user can inspect. ## Registry workflow @@ -212,7 +209,7 @@ memi publish --name @you/ds memi add Button --from @you/ds ``` -Point Memoire at `src/`, `app/globals.css`, a built CSS file, `http://localhost:3000`, or a public URL. +Point memi at `src/`, `app/globals.css`, a built CSS file, `http://localhost:3000`, or a public URL. ### Published registry -> shadcn/v0/AI editors @@ -223,7 +220,7 @@ npx shadcn@latest add https://cdn.example.com/r/button.json # Use the same registry as AI design-system context memi shadcn serve --from @you/ds -# Install through Memoire when you want alias/package/URL/GitHub resolution +# Install through memi when you want alias/package/URL/GitHub resolution memi registry install Button --from @you/ds ``` @@ -266,9 +263,9 @@ A registry bundles tokens (W3C DTCG JSON + Tailwind v4 `@theme` CSS), component More examples and the featured fallback catalog live in [`examples/`](./examples/README.md). -### Designed in tweakcn? Publish with Memoire. +### Designed in tweakcn? Publish with memi. -[tweakcn](https://tweakcn.com) is the visual theme editor for shadcn/ui. Memoire now treats tweakcn as a full workflow, not just a publish flag: +[tweakcn](https://tweakcn.com) is the visual theme editor for shadcn/ui. memi now treats tweakcn as a full workflow, not just a publish flag: ```bash # Import from a tweakcn CSS export or share URL @@ -288,11 +285,11 @@ memi theme publish "Acme Theme" --package @you/theme Theme import handles both Tailwind v3 (`:root { --primary: ... }`) and v4 (`@theme { --color-primary: ... }`) exports, including `:root` + `.dark` multi-mode themes. If you want the one-shot path, `memi publish --theme ` still works.

- Memoire terminal publish and install flow + memi terminal publish and install flow

- Memoire tweakcn theme workflow + memi tweakcn theme workflow

Demo scripts for recording and reuse live in [`docs/DEMOS.md`](./docs/DEMOS.md). @@ -300,37 +297,35 @@ No-Figma proof examples live in [`docs/PROOF.md`](./docs/PROOF.md). --- -## Why teams keep Memoire in the stack +## Why teams keep memi in the stack -Claude Design, Figma Make, Lovable, Bolt, Replit Agent, and v0 are useful for fast first passes. Memoire is for the part after that first pass, when the output has to survive beyond a single prompt or canvas session. +Claude Design, Figma Make, Lovable, Bolt, Replit Agent, and v0 are useful for fast first passes. memi is for the part after that first pass, when the output has to survive beyond a single prompt or canvas session. -- App builders: strong for creating the first version. Memoire diagnoses the design debt that shows up once the app is real. -- Claude Design and Figma Make: strong for visual exploration. Memoire keeps the reusable system portable across code, registries, and AI tools. -- v0: strong for generating screens and using registries. Memoire helps infer, improve, and publish the registry from the app you already have. +- App builders: strong for creating the first version. memi diagnoses the design debt that shows up once the app is real. +- Claude Design and Figma Make: strong for visual exploration. memi keeps the reusable system portable across code, registries, and AI tools. +- v0: strong for generating screens and using registries. memi helps infer, improve, and publish the registry from the app you already have. -If your team needs better visual quality, versioned tokens, installable components, tweakcn theme packaging, and cross-tool design system context, that is the Memoire wedge. +If your team needs better visual quality, versioned tokens, installable components, tweakcn theme packaging, and cross-tool design system context, that is the memi wedge. --- ## Studio interface references and adapted components -Memoire Studio is a desktop-first agent workbench for design runs. Its interface uses Hermes WebUI and Hermes Agent as MIT-licensed references for the transcript-first console, three-pane workbench, event normalization, and supervised local sessions. +memi Studio is a desktop-first agent workbench for design runs. Its interface uses Hermes WebUI and Hermes Agent as MIT-licensed references for the transcript-first console, three-pane workbench, event normalization, and supervised local sessions. -Studio runs Claude Code, Codex, Hermes, Ollama, OpenCode, Gemini, and Memoire Native through a shared harness manifest. External coding agents receive a Memoire design/research envelope before execution, so their runs start from project memory, specs, references, Figma state, accessibility, and Atomic Design rather than a generic coding prompt. The macOS app also has an Agent Kits panel for dry-run planning, installation, and force-refresh of Hermes, OpenClaw, Claude Code, Cursor, Codex, and OpenCode kit targets. `memi studio tui` and `memi studio logs` expose the same persisted JSONL events for terminal-first visibility into package logs, Claude/Codex output, harness status, approvals, artifacts, and final results. +Studio runs Claude Code, Codex, Hermes, Ollama, OpenCode, Gemini, and memi Native through a shared harness manifest. External coding agents receive a memi design/research envelope before execution, so their runs start from project memory, specs, references, Figma state, accessibility, and Atomic Design rather than a generic coding prompt. The macOS app also has an Agent Kits panel for dry-run planning, installation, and force-refresh of Hermes, OpenClaw, Claude Code, Cursor, Codex, and OpenCode kit targets. `memi studio tui` and `memi studio logs` expose the same persisted JSONL events for terminal-first visibility into package logs, Claude/Codex output, harness status, approvals, artifacts, and final results. Studio also includes a Notes Marketplace that lists built-in Notes, installed workspace Notes, and installable packages from the repo-owned `notes/*/note.json` manifests. The Marketplace uses the same Notes installer logic as `memi notes`, so installed packs become normal `.memoire/notes` project memory and agent context. -The desktop app source lives in `apps/studio`. Build output stays out of git under `apps/studio/src-tauri/target`; tagged GitHub Releases attach the downloadable macOS DMGs, for example `Mémoire Studio_0.16.3_aarch64.dmg`. For a local build, run: +The desktop app source lives in [sarveshsea/memi-studio](https://github.com/sarveshsea/memi-studio). This repo keeps the packaged runtime, harness contract, CLI commands, and `memi studio web|tui|logs|run` compatibility layer. Public DMGs are attached to [memi-studio releases](https://github.com/sarveshsea/memi-studio/releases/latest), and the cask is maintained in [sarveshsea/homebrew-memi](https://github.com/sarveshsea/homebrew-memi). ```bash -npm run studio:build +brew install --cask sarveshsea/memi/memi-studio ``` -For public direct-download DMGs, use the signed/notarized release gate in [docs/STUDIO_MACOS_RELEASE.md](docs/STUDIO_MACOS_RELEASE.md). - Motion/video work is native in 0.15 through optional Remotion and HyperFrames adapters. `memi video create|preview|render` stores projects under `.memoire/videos` without making either video tool a hard dependency. -Warp is used as a product reference for terminal blocks and grouped command output. Only MIT-licensed Warp UI framework pieces such as `warpui_core` and `warpui` are considered for adaptation; Warp AGPL application/client code is not copied into Memoire. +Warp is used as a product reference for terminal blocks and grouped command output. Only MIT-licensed Warp UI framework pieces such as `warpui_core` and `warpui` are considered for adaptation; Warp AGPL application/client code is not copied into memi. See [`NOTICE`](./NOTICE) for source links and attribution details. @@ -376,10 +371,10 @@ curl -fsSL https://memoire.cv/install.sh | sh irm https://memoire.cv/install.ps1 | iex # Homebrew (macOS / Linux) -brew install sarveshsea/memoire/memoire +brew install sarveshsea/memi/memoire # Docker (air-gapped envs where only ghcr.io is reachable) -docker run --rm -it -v "$PWD:/work" -w /work ghcr.io/sarveshsea/memoire --help +docker run --rm -it -v "$PWD:/work" -w /work ghcr.io/sarveshsea/memi --help # Self-update once installed memi upgrade @@ -394,13 +389,13 @@ memi upgrade | Linux (x86_64) | `memi-linux-x64.tar.gz` | | Windows (x64) | `memi-win-x64.zip` | -Verify with `SHA256SUMS.txt` (attached to every release). Extract, add `memi` to PATH, run `memi connect`. The `skills/`, `notes/`, `plugin/`, `preview/` directories must stay next to the binary — Mémoire loads them at runtime. +Verify with `SHA256SUMS.txt` (attached to every release). Extract, add `memi` to PATH, run `memi connect`. The `skills/`, `notes/`, `plugin/`, `preview/` directories must stay next to the binary — memi loads them at runtime. --- ## Advanced: Use with AI agents -Memoire can install native agent kits and also run as an MCP server, so your AI assistant can work directly with your design system after the registry workflow is in place. Use `memi agent install --dry-run --json` to inspect every write before installing. For copy-paste prompts and client-specific setup, see [`docs/AGENT_RECIPES.md`](./docs/AGENT_RECIPES.md). +memi can install native agent kits and also run as an MCP server, so your AI assistant can work directly with your design system after the registry workflow is in place. Use `memi agent install --dry-run --json` to inspect every write before installing. For copy-paste prompts and client-specific setup, see [`docs/AGENT_RECIPES.md`](./docs/AGENT_RECIPES.md). ```bash memi suite init --project . # writes memoire.agent.yaml @@ -501,7 +496,7 @@ npm run check:public-release | `memi sync` | Full sync: Figma + specs + code | | `memi sync --live` | Watch and sync continuously | | `memi compose ""` | Agent orchestrator: classify, plan, execute | -| `memi agent install [target]` | Install Memoire agent kits for Hermes, OpenClaw, Claude Code, Cursor, Codex, Codex plugin, or OpenCode | +| `memi agent install [target]` | Install memi agent kits for Hermes, OpenClaw, Claude Code, Cursor, Codex, Codex plugin, or OpenCode | | `memi agent spawn ` | Spawn a persistent agent worker | | `memi daemon start|status|stop` | Manage the shared local runtime for CLI, Studio, MCP, and agent adapters | | `memi suite init|doctor|run ` | Manage `memoire.agent.yaml` product-team suite recipes | diff --git a/docs/GITHUB_ACHIEVEMENTS.md b/docs/GITHUB_ACHIEVEMENTS.md index 557e855..7e2cb1a 100644 --- a/docs/GITHUB_ACHIEVEMENTS.md +++ b/docs/GITHUB_ACHIEVEMENTS.md @@ -51,8 +51,8 @@ Immediate sequence: The official MCP Registry verifies npm package ownership through `package.json#mcpName`. The already-published `0.14.3` package includes this field; `0.14.4` adds trust hardening before registry submission. -- `package.json#mcpName`: `io.github.sarveshsea/memoire` -- `server.json#name`: `io.github.sarveshsea/memoire` +- `package.json#mcpName`: `io.github.sarveshsea/memi` +- `server.json#name`: `io.github.sarveshsea/memi` - `server.json#packages[0].identifier`: `@memi-design/cli` - `server.json#packages[0].packageArguments`: `mcp` diff --git a/docs/GROWTH_TO_1M_NPM.md b/docs/GROWTH_TO_1M_NPM.md new file mode 100644 index 0000000..f53c64e --- /dev/null +++ b/docs/GROWTH_TO_1M_NPM.md @@ -0,0 +1,88 @@ +# Growth To 1M Weekly NPM Downloads + +Updated: 2026-05-13 + +## North Star + +Get `@memi-design/cli` to 1,000,000 npm downloads per week by making the engine the thing people install, script, embed, and recommend. Studio should demonstrate the engine and make agent work calmer; it should not become the main product surface or the main source of complexity. + +## Current Truth + +- Public npm package: `@memi-design/cli@1.0.0`; local release branch: `1.0.1`. +- npm downloads: 128 in the last reported week, 2026-05-05 through 2026-05-11. +- Legacy alias: `@sarveshsea/memoire@0.18.0` still exists and receives more traffic than the new package. +- GitHub repo: `sarveshsea/memi`, 10 stars, 2 forks, 2 open issues. +- Studio repo: `sarveshsea/memi-studio`, public app repo with v1.0.0 release assets. +- Homebrew cask: `sarveshsea/homebrew-memi`, `memi-studio` cask at v1.0.0. +- Official MCP Registry: not listed for `io.github.sarveshsea/memi`. +- Active leak: old `m-moire` and `@sarveshsea/memoire` references confuse discovery, install paths, and trust. + +Run the live check: + +```bash +node scripts/growth-status.mjs --json +``` + +## Product Posture + +The engine must be the default answer: + +- `memi diagnose` for existing apps. +- `memi tokens --from ./src --report` for token extraction. +- `memi shadcn export --out public/r` for installable registries. +- `memi agent install ...` for agent-native design-system memory. +- `memi mcp start --no-figma` for MCP discovery. + +The macOS app should be minimalist: + +- One primary job: run and supervise agent harnesses clearly. +- Two primary harnesses: Codex and Claude Code. +- Everything else is advanced until users ask for it. +- Surfaces should collapse toward transcript, artifacts, status, and project memory. +- No feature earns first-screen space unless it helps the first successful engine-backed run. + +## Growth Loops + +1. Release correctness + +Publish `1.0.1`, verify npm metadata, verify binary install URLs, and keep Homebrew formulas pointed at `sarveshsea/memi`. + +2. Naming cleanup + +Remove or quarantine stale `m-moire` and `@sarveshsea/memoire` references across docs, install scripts, package metadata, and the Studio repo. The old package should clearly redirect people to `@memi-design/cli`. + +3. Registry distribution + +Submit `server.json` to the Official MCP Registry once npm is current. Keep merged directory PRs accurate, close stale ones, and resubmit with the `memi` name where needed. + +4. Agent-native adoption + +Make Codex, Claude Code, Cursor, and shadcn/v0 workflows the shortest path in README examples. The README should sell the engine wedge before Studio. + +5. Repeatable proof + +Ship examples that users can run in under two minutes: + +```bash +memi diagnose +memi tokens --from ./src --report +memi shadcn export --out public/r +``` + +## Milestone Ladder + +- 1,000 weekly downloads: release/package/install paths are clean; README examples work from a fresh machine. +- 10,000 weekly downloads: MCP registry, shadcn/v0 examples, Codex plugin, and Homebrew paths all agree on naming. +- 100,000 weekly downloads: templates and starter registries are discoverable from npm, GitHub, and docs without Studio. +- 1,000,000 weekly downloads: downstream agents, templates, registries, and docs install `@memi-design/cli` as infrastructure. + +## Keep The App Tidy + +Do not let Studio compete with the engine. Treat it as a native workbench for the same runtime: + +- Primary navigation: Workbench, Artifacts, Memory, Settings. +- Primary session path: choose harness, choose workspace, send prompt, watch events, review artifacts. +- Advanced drawers: marketplace, scenario lab, video, Figma, automations, local model setup. +- Default harness visibility: Codex and Claude Code only. +- Every advanced feature needs a CLI/runtime equivalent. + diff --git a/docs/OFFICIAL_MCP_REGISTRY.md b/docs/OFFICIAL_MCP_REGISTRY.md index f590e6e..88ff16f 100644 --- a/docs/OFFICIAL_MCP_REGISTRY.md +++ b/docs/OFFICIAL_MCP_REGISTRY.md @@ -8,7 +8,7 @@ The Official MCP Registry hosts metadata, not package artifacts. For npm package Memoire uses: -- MCP server name: `io.github.sarveshsea/memoire` +- MCP server name: `io.github.sarveshsea/memi` - npm package: `@memi-design/cli` - transport: `stdio` - package argument: `mcp` @@ -34,16 +34,18 @@ npm view @memi-design/cli version mcpName --json mcp-publisher login github mcp-publisher publish server.json -curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memoire" +curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memi" ``` +CI can publish without a local registry token through the `Publish to MCP Registry` GitHub Actions workflow. It uses GitHub OIDC, validates `server.json`, and refuses to publish until the matching `@memi-design/cli` version exists on npm. + Expected registry result after publish: ```json { "servers": [ { - "name": "io.github.sarveshsea/memoire" + "name": "io.github.sarveshsea/memi" } ] } diff --git a/docs/README.md b/docs/README.md index 5153459..af89e41 100644 --- a/docs/README.md +++ b/docs/README.md @@ -83,6 +83,7 @@ memi add Button --from @you/theme - Launch copy: [`docs/LAUNCH.md`](./LAUNCH.md) - Social launch posts: [`docs/SOCIAL.md`](./SOCIAL.md) - Weekly growth scorecard: [`docs/METRICS.md`](./METRICS.md) +- 1M/week npm operating brief: [`docs/GROWTH_TO_1M_NPM.md`](./GROWTH_TO_1M_NPM.md) - Full package overview: [`README.md`](../README.md) ## Advanced diff --git a/docs/STARSTRUCK.md b/docs/STARSTRUCK.md index c884edf..8210a67 100644 --- a/docs/STARSTRUCK.md +++ b/docs/STARSTRUCK.md @@ -47,7 +47,7 @@ Then publish to the official MCP Registry: ```bash mcp-publisher login github mcp-publisher publish server.json -curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memoire" +curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memi" ``` Why this matters: the official registry only hosts metadata, but MCP directories and aggregators use it as a trust source. Once this is live, submit or refresh every MCP directory with the same npm/GitHub links. @@ -90,7 +90,7 @@ Why this matters: the official registry only hosts metadata, but MCP directories ## Launch Sequence For 12 Stars 1. Publish `0.14.4` with security hardening, `mcpName`, and `server.json`. -2. Publish to the official MCP Registry and verify search returns `io.github.sarveshsea/memoire`. +2. Publish to the official MCP Registry and verify search returns `io.github.sarveshsea/memi`. 3. Submit MCP.Directory, refresh Glama, submit Smithery, confirm PulseMCP and mcp.so indexing. 4. Follow up on open PRs only with new proof: official registry link, security hardening, or maintainer-requested fixes. 5. Ship one 60-second terminal demo: install, `memi diagnose`, `memi shadcn export`, `memi mcp config --install`. diff --git a/examples/presets/ai-chat/registry.json b/examples/presets/ai-chat/registry.json index 66c7f53..9a3fd37 100644 --- a/examples/presets/ai-chat/registry.json +++ b/examples/presets/ai-chat/registry.json @@ -73,6 +73,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/auth-flow/registry.json b/examples/presets/auth-flow/registry.json index add9108..fcf15ef 100644 --- a/examples/presets/auth-flow/registry.json +++ b/examples/presets/auth-flow/registry.json @@ -63,6 +63,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/dashboard/registry.json b/examples/presets/dashboard/registry.json index 25c847a..76ef8a9 100644 --- a/examples/presets/dashboard/registry.json +++ b/examples/presets/dashboard/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/docs-blog/registry.json b/examples/presets/docs-blog/registry.json index 4138ae9..07e5778 100644 --- a/examples/presets/docs-blog/registry.json +++ b/examples/presets/docs-blog/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/ecommerce/registry.json b/examples/presets/ecommerce/registry.json index 873002f..e70c1ab 100644 --- a/examples/presets/ecommerce/registry.json +++ b/examples/presets/ecommerce/registry.json @@ -63,6 +63,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/landing-page/registry.json b/examples/presets/landing-page/registry.json index d0f8d6f..026c71f 100644 --- a/examples/presets/landing-page/registry.json +++ b/examples/presets/landing-page/registry.json @@ -63,6 +63,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/starter-saas/registry.json b/examples/presets/starter-saas/registry.json index e4b6b35..95dc84a 100644 --- a/examples/presets/starter-saas/registry.json +++ b/examples/presets/starter-saas/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/starter/README.md b/examples/presets/starter/README.md index d110a6e..20d928f 100644 --- a/examples/presets/starter/README.md +++ b/examples/presets/starter/README.md @@ -30,4 +30,4 @@ memi add Button --from @yourscope/your-ds - Four real React components using CSS variables, not hardcoded hex - `Button.loading` prop that swaps the label for a spinner -Generated for Memoire v1.0.0. +Generated for Memoire v1.0.1. diff --git a/examples/presets/starter/registry.json b/examples/presets/starter/registry.json index ff6fefe..6e0040c 100644 --- a/examples/presets/starter/registry.json +++ b/examples/presets/starter/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/tweakcn-linear/registry.json b/examples/presets/tweakcn-linear/registry.json index 0fc208b..29fef17 100644 --- a/examples/presets/tweakcn-linear/registry.json +++ b/examples/presets/tweakcn-linear/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/tweakcn-supabase/registry.json b/examples/presets/tweakcn-supabase/registry.json index 0a51090..53382ed 100644 --- a/examples/presets/tweakcn-supabase/registry.json +++ b/examples/presets/tweakcn-supabase/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/presets/tweakcn-vercel/registry.json b/examples/presets/tweakcn-vercel/registry.json index 80a790c..28d065b 100644 --- a/examples/presets/tweakcn-vercel/registry.json +++ b/examples/presets/tweakcn-vercel/registry.json @@ -53,6 +53,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/examples/starter-registry/registry.json b/examples/starter-registry/registry.json index 84d2cee..b8efbac 100644 --- a/examples/starter-registry/registry.json +++ b/examples/starter-registry/registry.json @@ -23,6 +23,6 @@ ], "meta": { "extractedAt": "2026-04-15T00:00:00.000Z", - "memoireVersion": "1.0.0" + "memoireVersion": "1.0.1" } } diff --git a/package-lock.json b/package-lock.json index e8e00e9..3eea619 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@memi-design/cli", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@memi-design/cli", - "version": "1.0.0", + "version": "1.0.1", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "^0.39.0", diff --git a/package.json b/package.json index 1a6845b..67d91f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@memi-design/cli", - "version": "1.0.0", + "version": "1.0.1", "mcpName": "io.github.sarveshsea/memi", "description": "Design-system memory for coding agents — give Claude Code, Cursor, and Codex memory of your tokens, components, and Figma so they edit your app without breaking the design.", "type": "module", diff --git a/plugin/widget-meta.json b/plugin/widget-meta.json index 85cdd9d..3a711e0 100644 --- a/plugin/widget-meta.json +++ b/plugin/widget-meta.json @@ -1,22 +1,22 @@ { "widgetVersion": "2", - "packageVersion": "1.0.0", - "builtAt": "2026-05-10T20:29:00.481Z", + "packageVersion": "1.0.1", + "builtAt": "2026-05-12T03:53:41.174Z", "bundleHash": "ffd143c9b7a1a1ea878b03322940525eb1f53db395572b46e3cc7bbf4f2e69aa", "manifest": { - "path": "/Users/sarveshchidambaram/Desktop/Projects/Other/ark/plugin/manifest.json", + "path": "manifest.json", "exists": true, "bytes": 1746, "sha256": "93e5420e7a2b359a345cd7af9c552e9d66171df1bf976090229e224fdb1c13ab" }, "code": { - "path": "/Users/sarveshchidambaram/Desktop/Projects/Other/ark/plugin/code.js", + "path": "code.js", "exists": true, "bytes": 48064, "sha256": "1bb461e5c6d934cc810a5d459a1ab852cca577efafc1f35c2591b9945d018977" }, "ui": { - "path": "/Users/sarveshchidambaram/Desktop/Projects/Other/ark/plugin/ui.html", + "path": "ui.html", "exists": true, "bytes": 93930, "sha256": "8e61e42da2825c1d2afbbbc285aaf02c86c66f2751b1b9538b59fb8ca2a4f192" diff --git a/plugins/memoire/.codex-plugin/plugin.json b/plugins/memoire/.codex-plugin/plugin.json index 7fc5778..e626728 100644 --- a/plugins/memoire/.codex-plugin/plugin.json +++ b/plugins/memoire/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "memoire", - "version": "1.0.0", + "version": "1.0.1", "description": "Design memory and UI quality tools for Codex: MCP tools, design-system context, Figma workflows, shadcn/ui, Tailwind, and Atomic Design.", "author": { "name": "Sarvesh Chidambaram", diff --git a/preview/changelog.html b/preview/changelog.html index a2dee10..17c48f3 100644 --- a/preview/changelog.html +++ b/preview/changelog.html @@ -391,8 +391,8 @@
242 commits - 24 versions - 2026-05-10 latest + 25 versions + 2026-05-12 latest
@@ -407,8 +407,8 @@

Real release history, not placeholder demo copy.

Current release - v1.0.0 -
0 commits tracked in v1.0.0 from CHANGELOG.md.
+ v1.0.1 +
0 commits tracked in v1.0.1 from CHANGELOG.md.
Biggest theme @@ -434,10 +434,22 @@

Real release history, not placeholder demo copy.

-
memoire changelog - synced with CHANGELOG.md through v1.0.0
+
memoire changelog - synced with CHANGELOG.md through v1.0.1