lema-mcp 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +48 -3
  2. package/package.json +5 -5
package/README.md CHANGED
@@ -28,6 +28,34 @@ npx lema-mcp init # wire this repo for capture + enforcement (idempotent)
28
28
  Then open the repo in your agent and ask *"why did we choose X?"* — or just let it
29
29
  work, and watch it record decisions and get nudged off the ones you settled.
30
30
 
31
+ ## Try it on React, Kubernetes, or Rust — no account
32
+
33
+ Before it knows *your* repo, `lema-mcp` can already answer **why a popular project
34
+ decided something** — over the recorded RFC/KEP decisions of React, Kubernetes,
35
+ and Rust, served from lema's public demo. No account, no token:
36
+
37
+ ```bash
38
+ npx lema-mcp try react # or: kubernetes · rust
39
+ ```
40
+
41
+ That writes a **read-only** `lema-try` server to `.mcp.json` (it coexists with a
42
+ captured `lema` server — it doesn't touch your repo). Reload your agent's MCP
43
+ servers and ask:
44
+
45
+ > *"why did React adopt Hooks over mixins?"* — or, before you reach for a pattern,
46
+ > *"was a global event bus ever ruled out in Kubernetes?"*
47
+
48
+ You get **one synthesized, cited answer** — each `[n]` links to its GitHub source
49
+ (the RFC/PR) where available — and an honest **"no recorded ruling"** when the
50
+ record is silent, instead of a confident guess. Two tools light up (`public_ask`,
51
+ `why_not_public`); nothing local is registered. Ready for the same on *your own*
52
+ repo? `npx lema-mcp init` adds capture + enforcement.
53
+
54
+ Grounded only in recorded decisions; claims are **summarized, not verbatim**;
55
+ there are **no** relitigation/blast lenses (a cold import writes no
56
+ decision→decision edges) and no source-authored date. It's a curated three-repo
57
+ demo corpus, not analytics over your own graph.
58
+
31
59
  ## What never-reopen looks like
32
60
 
33
61
  Your agent settles a choice and calls `record_decision` with the chosen option
@@ -153,9 +181,10 @@ regex), `--openspec-dir`, `--capture-file` (override the JSONL path), and
153
181
 
154
182
  ## The tools
155
183
 
156
- Your agent calls these over MCP. Six are always on; two more
157
- (`search_docs` / `get_doc`) register automatically in local mode once a markdown
158
- tree is indexed.
184
+ Your agent calls these over MCP. In the standard server **eight are always on**;
185
+ `search_docs` / `get_doc` also register in local mode once a markdown tree is
186
+ indexed. (The `npx lema-mcp try` public-demo server runs a public-only subset —
187
+ just `public_ask` / `why_not_public`.)
159
188
 
160
189
  **Enforce + capture (the part read-only tools don't have):**
161
190
 
@@ -183,6 +212,17 @@ tree is indexed.
183
212
  agent instructions, ADR/openspec full text) so the agent reads the sections that
184
213
  matter instead of whole files.
185
214
 
215
+ **Public demo (no account — `npx lema-mcp try <repo>`):**
216
+
217
+ - **`public_ask`** — ask why **React / Kubernetes / Rust** made a decision; one
218
+ cited answer over their recorded RFC/KEP decisions, surfacing status and the
219
+ ruled-out alternatives, with an honest abstain when the record is silent.
220
+ Tokenless, over the public demo.
221
+ - **`why_not_public`** — before you propose a library / pattern / approach, check
222
+ whether one of those projects already ruled it out: a cited answer, or a plain
223
+ "no recorded decision against it" — which means *not on the record*, **not
224
+ *approved***.
225
+
186
226
  ```
187
227
  > search_decisions "why did we choose an MCP-first architecture?"
188
228
  ```
@@ -217,6 +257,11 @@ it's a side benefit. The reason to run lema is never-reopen, above.
217
257
  - **`demo`** — a ~30-second never-reopen walkthrough using the real capture +
218
258
  enforce path against a throwaway temp dir that's deleted afterward. Nothing is
219
259
  written to your repo. This is the fastest way to see the CLOSED behavior.
260
+ - **`try <react|kubernetes|rust>`** — wire a **read-only public-demo** server
261
+ (`lema-try` in `.mcp.json`, public mode) so your agent can ask why those
262
+ projects decided things, no account. Distinct from `init` (which sets up
263
+ capture for *your* repo); the two coexist. Reload your agent's MCP servers
264
+ afterward.
220
265
  - **`guard`** — the PreToolUse hook body: reads the tool-call payload on stdin,
221
266
  emits a never-reopen permission decision on stdout. Advisory, fail-open, always
222
267
  exits 0. `init` installs it; you don't call it directly.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lema-mcp",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Local, database-less MCP server that makes your repo's decisions — and what it ruled out — queryable by your coding agent, and lets the agent record new ones with enforced never-reopen.",
5
5
  "bin": {
6
6
  "lema-mcp": "bin/lema-mcp.js"
@@ -12,10 +12,10 @@
12
12
  "prepack": "cp ../../README.md ./README.md && cp ../../LICENSE ./LICENSE"
13
13
  },
14
14
  "optionalDependencies": {
15
- "lema-mcp-darwin-arm64": "0.7.0",
16
- "lema-mcp-darwin-x64": "0.7.0",
17
- "lema-mcp-linux-x64": "0.7.0",
18
- "lema-mcp-linux-arm64": "0.7.0"
15
+ "lema-mcp-darwin-arm64": "0.8.0",
16
+ "lema-mcp-darwin-x64": "0.8.0",
17
+ "lema-mcp-linux-x64": "0.8.0",
18
+ "lema-mcp-linux-arm64": "0.8.0"
19
19
  },
20
20
  "engines": {
21
21
  "node": ">=18"