@rness/cli 0.8.0 → 0.9.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.
- package/README.md +62 -5
- package/dist/bin/rness.js +1 -1
- package/dist/{chunk-VQMX52HT.js → chunk-DL72BCPT.js} +628 -158
- package/dist/chunk-DL72BCPT.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-VQMX52HT.js.map +0 -1
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@ Inside a workspace, every `rness` delegates to the copy pinned in
|
|
|
29
29
|
rness logout
|
|
30
30
|
rness context [--scope <name>] [--json]
|
|
31
31
|
rness validate
|
|
32
|
+
rness mcp
|
|
32
33
|
|
|
33
34
|
`create` never runs inside a workspace. `add`, `sync` and `create` ask for
|
|
34
35
|
confirmation in a terminal; pass `-y`/`--yes` in scripts. `sync --check`
|
|
@@ -61,7 +62,8 @@ the files a given agent needs, for the agents the team declares in
|
|
|
61
62
|
`../../.rness` in `permissions.additionalDirectories`, so a session in the
|
|
62
63
|
repository reads the context repository without a prompt. Claude Code
|
|
63
64
|
applies it once the repository has been trusted interactively. Verified
|
|
64
|
-
with Claude Code 2.1.284 on 2026-09-29.
|
|
65
|
+
with Claude Code 2.1.284 on 2026-09-29. Each clone also gets `.mcp.json`,
|
|
66
|
+
which registers the MCP server; see "MCP server".
|
|
65
67
|
- rness owns values, not files: what is missing is added, nothing else is
|
|
66
68
|
touched, and a file it cannot parse is reported, never rewritten.
|
|
67
69
|
`sync --check` and `validate` report a missing value. Removing an agent
|
|
@@ -69,6 +71,38 @@ the files a given agent needs, for the agents the team declares in
|
|
|
69
71
|
- Other agents (Codex, Cursor, GitHub Copilot) read the `AGENTS.md` block;
|
|
70
72
|
`sync` refuses an agent it has no target for.
|
|
71
73
|
|
|
74
|
+
### MCP server
|
|
75
|
+
|
|
76
|
+
rness mcp # started by the agent over stdio, not by hand
|
|
77
|
+
|
|
78
|
+
A local, read-only MCP server over the workspace's `.rness/`, for an agent to
|
|
79
|
+
find what applies to the repository it works in and where a subject was
|
|
80
|
+
decided:
|
|
81
|
+
|
|
82
|
+
| Tool | Returns |
|
|
83
|
+
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
84
|
+
| `rness_context({ scope? })` | the scope of the working directory (or the one named) and what applies to it: standards, decisions, specifications, plans — id, status, title, path |
|
|
85
|
+
| `rness_list({ collection, status? })` | every document of a collection, across scopes, optionally of one status |
|
|
86
|
+
| `rness_read({ path })` | one file of `.rness/`, 256 KiB at most; nothing outside it |
|
|
87
|
+
| `rness_search({ query, collection? })` | the documents that match, most matching first, with the matching lines |
|
|
88
|
+
|
|
89
|
+
- MCP over stdio, one message per line: the `2026-07-28` revision and the
|
|
90
|
+
earlier ones that open with `initialize` (`2025-11-25` back to
|
|
91
|
+
`2024-11-05`). No MCP SDK, no added dependency.
|
|
92
|
+
- `.rness/` is read again on each call, so an edit shows at once. Nothing is
|
|
93
|
+
written.
|
|
94
|
+
- With `claude` in `agents`, `sync` registers it in each clone:
|
|
95
|
+
`.mcp.json` gets `mcpServers.rness`, which runs the pinned copy
|
|
96
|
+
(`node ../../.rness/node_modules/@rness/cli/dist/bin/rness.js mcp`), and
|
|
97
|
+
`.claude/settings.json` lists `rness` in `enabledMcpjsonServers`. A
|
|
98
|
+
team's own `rness` entry is left as it is.
|
|
99
|
+
- Verified with Claude Code 2.1.284 on 2026-09-29: the server starts from the
|
|
100
|
+
repository and its tools answer. Not verified yet: that
|
|
101
|
+
`enabledMcpjsonServers` spares the approval prompt in an interactive
|
|
102
|
+
session.
|
|
103
|
+
- Another agent can run the same command from a clone; rness writes no
|
|
104
|
+
configuration for it.
|
|
105
|
+
|
|
72
106
|
### Log in
|
|
73
107
|
|
|
74
108
|
rness login # shows a code and https://github.com/login/device
|
|
@@ -138,7 +172,7 @@ dependency does this: `util.styleText`, and a banner kept as a constant.
|
|
|
138
172
|
### Upgrade
|
|
139
173
|
|
|
140
174
|
rness upgrade # the latest release; `rness upgrade 0.5.0` for another
|
|
141
|
-
npx @rness/cli@latest upgrade # your global rness is
|
|
175
|
+
npx @rness/cli@latest upgrade # your global rness is below 0.8.0, or the pin is below 0.5.0
|
|
142
176
|
pnpm rness upgrade # inside .rness: the pinned copy merges its own scaffold
|
|
143
177
|
|
|
144
178
|
The version is written in one place, `.rness/package.json`. `upgrade` pins it
|
|
@@ -191,9 +225,10 @@ now names; `rness validate` warns while it is behind.
|
|
|
191
225
|
drops the scaffold commit, and the next upgrade falls back to an older base.
|
|
192
226
|
|
|
193
227
|
`upgrade` is never delegated to the pinned copy, which is what it replaces
|
|
194
|
-
— so it runs the copy you typed.
|
|
195
|
-
|
|
196
|
-
|
|
228
|
+
— so it runs the copy you typed. From 0.8.0, a global `rness` older than the
|
|
229
|
+
pin merges the scaffold of the copy installed in `.rness`. A global below
|
|
230
|
+
0.8.0 knows no scaffold: it answers "already at" and merges nothing — use the
|
|
231
|
+
`npx` form, or the pinned copy from inside `.rness`. A workspace pinned below 0.5.0, whose copy has no such
|
|
197
232
|
command, starts with the `npx` form.
|
|
198
233
|
|
|
199
234
|
An upgrade touches `.rness` only: a generated block is current when its hash
|
|
@@ -203,6 +238,28 @@ its content does.
|
|
|
203
238
|
Exit codes: 0 success, 1 failure, 2 usage — or a refusal without a TTY.
|
|
204
239
|
`RNESS_DEBUG=1` adds stack traces; `RNESS_NO_DELEGATE=1` skips the delegation.
|
|
205
240
|
|
|
241
|
+
## 0.9.0 — the context on demand: `rness mcp`
|
|
242
|
+
|
|
243
|
+
- `rness mcp`: a local, read-only MCP server with four tools —
|
|
244
|
+
`rness_context`, `rness_list`, `rness_read`, `rness_search`. See "MCP
|
|
245
|
+
server".
|
|
246
|
+
- The Claude target registers it: each clone gets `.mcp.json`
|
|
247
|
+
(`mcpServers.rness`) and `rness` in `enabledMcpjsonServers` of
|
|
248
|
+
`.claude/settings.json`. After upgrading, run `rness sync` once and commit
|
|
249
|
+
both files in each repository; until then `sync --check` and `validate`
|
|
250
|
+
report them missing.
|
|
251
|
+
- Blocks are unchanged.
|
|
252
|
+
|
|
253
|
+
## 0.8.1 — adoption without placeholders
|
|
254
|
+
|
|
255
|
+
- Adopting the scaffold no longer adds a `.gitkeep` to a directory that
|
|
256
|
+
already holds files (`specs/`, `plans/` of a workspace older than
|
|
257
|
+
`create`).
|
|
258
|
+
- In a terminal, `upgrade` says "Merging the @rness/cli 0.8.0 scaffold"
|
|
259
|
+
instead of "the @rness/cli 0.8.0 scaffold merging".
|
|
260
|
+
- A test now pins what 0.8.0 already did: a global `rness` older than the pin
|
|
261
|
+
merges the scaffold of the copy installed in `.rness`.
|
|
262
|
+
|
|
206
263
|
## 0.8.0 — upgrade merges the scaffold
|
|
207
264
|
|
|
208
265
|
- `rness upgrade` merges the target version's scaffold into `.rness` with
|