@rness/cli 0.9.2 → 0.11.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 +89 -1
- package/dist/bin/rness.js +1 -1
- package/dist/{chunk-JKDF7ROY.js → chunk-LW4S5OLI.js} +1021 -368
- package/dist/chunk-LW4S5OLI.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-JKDF7ROY.js.map +0 -1
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@ Inside a workspace, every `rness` delegates to the copy pinned in
|
|
|
28
28
|
rness login [--setup-git|--no-setup-git]
|
|
29
29
|
rness logout
|
|
30
30
|
rness context [--scope <name>] [--json]
|
|
31
|
+
rness status [<tab>]
|
|
31
32
|
rness validate
|
|
32
33
|
rness mcp
|
|
33
34
|
|
|
@@ -41,6 +42,28 @@ writes nothing and exits 1 when a block is out of date — use it in CI.
|
|
|
41
42
|
`.rness/` goes to the network. Bring repositories in with
|
|
42
43
|
`rness add <owner>/<repo>` or a git URL — a bare name needs an `"org"`.
|
|
43
44
|
|
|
45
|
+
### Status
|
|
46
|
+
|
|
47
|
+
rness status # every decision, specification and plan, a tab per directory
|
|
48
|
+
rness status specs # open on one tab (off a terminal: print only that one)
|
|
49
|
+
|
|
50
|
+
A tab for `ADR`, `Specs` and `Plans`, always, then one for each other
|
|
51
|
+
directory of `.rness/` whose Markdown files carry a `status` in their front
|
|
52
|
+
matter (a `marketing/` of dated posts, say). A line per document, newest
|
|
53
|
+
first: its number (or date), its title, its status — green when done, grey
|
|
54
|
+
when dropped, red `?` when missing.
|
|
55
|
+
|
|
56
|
+
- In a terminal, a full-screen view: `←`/`→` or `Tab` change tab, `↑`/`↓`,
|
|
57
|
+
`PgUp`/`PgDn`, `Home`/`End` scroll, `q` or `Esc` closes and gives the
|
|
58
|
+
screen back. Read-only.
|
|
59
|
+
- Off a terminal — a pipe, CI, an agent's tool — Markdown: a table per tab.
|
|
60
|
+
- From Claude Code, `/rness:status [tab]` shows those tables (see "Agent
|
|
61
|
+
targets"). For the view itself: `Ctrl+Z` suspends Claude Code, run
|
|
62
|
+
`npx @rness/cli status` (or `rness status` with a global install), `q`,
|
|
63
|
+
then `fg` resumes it — the skill ends with that line. Nothing started from inside
|
|
64
|
+
Claude Code gets the terminal, so the view cannot open from there
|
|
65
|
+
(verified with Claude Code 2.1.284 on 2026-09-29).
|
|
66
|
+
|
|
44
67
|
### Agent targets
|
|
45
68
|
|
|
46
69
|
The `AGENTS.md` block is what every agent reads. On top of it, rness writes
|
|
@@ -63,7 +86,14 @@ the files a given agent needs, for the agents the team declares in
|
|
|
63
86
|
repository reads the context repository without a prompt. Claude Code
|
|
64
87
|
applies it once the repository has been trusted interactively. Verified
|
|
65
88
|
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".
|
|
89
|
+
which registers the MCP server; see "MCP server". The same settings file
|
|
90
|
+
carries two hooks, and so does `.claude/settings.json` at the workspace
|
|
91
|
+
root, which `sync` writes on every machine; see "Hooks". Both places also
|
|
92
|
+
get a Claude Code plugin, `.claude/skills/rness/`, with one command:
|
|
93
|
+
`/rness:status [tab]`, the tables of `rness status`. rness owns those
|
|
94
|
+
files whole — an edit by hand is reported by `sync --check` and written
|
|
95
|
+
back by `sync` — and nothing in them depends on the version. Claude Code
|
|
96
|
+
loads the plugin once the folder is trusted, in a session started there.
|
|
67
97
|
- rness owns values, not files: what is missing is added, nothing else is
|
|
68
98
|
touched, and a file it cannot parse is reported, never rewritten.
|
|
69
99
|
`sync --check` and `validate` report a missing value. Removing an agent
|
|
@@ -71,6 +101,39 @@ the files a given agent needs, for the agents the team declares in
|
|
|
71
101
|
- Other agents (Codex, Cursor, GitHub Copilot) read the `AGENTS.md` block;
|
|
72
102
|
`sync` refuses an agent it has no target for.
|
|
73
103
|
|
|
104
|
+
### Hooks
|
|
105
|
+
|
|
106
|
+
With `claude` in `agents`, each clone's `.claude/settings.json` and the
|
|
107
|
+
workspace root's carry two Claude Code hooks, both run by the pinned copy:
|
|
108
|
+
|
|
109
|
+
- **At session start** (`SessionStart`, every source): a line for the
|
|
110
|
+
developer — `rness 0.10.0 · acme · scope web — 3 standards, 2 decisions`
|
|
111
|
+
— and, for the model, the scope's documents as `rness_context` lists
|
|
112
|
+
them. When the context may be wrong, both say why: no `.rness` next to the
|
|
113
|
+
repository or nothing installed there, a `rness.json` rness refuses, a pin
|
|
114
|
+
the installed copy does not match, the problems `rness validate` reports.
|
|
115
|
+
After a compaction, the context only.
|
|
116
|
+
- **After an edit** (`PostToolUse` on `Edit|Write`): when the file is under
|
|
117
|
+
`.rness/`, its front-matter problems — or those of `rness.json` — go back
|
|
118
|
+
to the model, which fixes them in the same turn. Any other edit costs one
|
|
119
|
+
path check. Stale blocks are left to `sync`.
|
|
120
|
+
|
|
121
|
+
Each hook is one fixed `sh` line: it runs
|
|
122
|
+
`<.rness>/node_modules/@rness/cli/dist/bin/rness.js hook <event>` when that
|
|
123
|
+
file exists, and otherwise says so at session start and nothing after an
|
|
124
|
+
edit. The line never changes between versions — what the hook does lives in
|
|
125
|
+
the CLI — because rness compares its entry as a whole: an entry edited by
|
|
126
|
+
hand counts as missing, and the next `sync` adds a second one. The team's
|
|
127
|
+
own hooks stay where they are.
|
|
128
|
+
|
|
129
|
+
Claude Code runs hooks from a committed settings file without asking each
|
|
130
|
+
developer, including in `claude -p`. These two read `.rness/` and nothing
|
|
131
|
+
else: they write no file, run no install and reach no network. Review a
|
|
132
|
+
change to them like code. Verified with Claude Code 2.1.284 on 2026-09-29:
|
|
133
|
+
in a clone and at the root, the model received the context; after an edit
|
|
134
|
+
that broke a status, it received the problem. The `sh` line is not verified
|
|
135
|
+
on Windows.
|
|
136
|
+
|
|
74
137
|
### MCP server
|
|
75
138
|
|
|
76
139
|
rness mcp # started by the agent over stdio, not by hand
|
|
@@ -243,6 +306,31 @@ per repository, the files to commit there.
|
|
|
243
306
|
Exit codes: 0 success, 1 failure, 2 usage — or a refusal without a TTY.
|
|
244
307
|
`RNESS_DEBUG=1` adds stack traces; `RNESS_NO_DELEGATE=1` skips the delegation.
|
|
245
308
|
|
|
309
|
+
## 0.11.0 — `rness status`; `/rness:status` in Claude Code
|
|
310
|
+
|
|
311
|
+
- `rness status [tab]`: every decision, specification and plan — and any
|
|
312
|
+
other directory of `.rness/` whose documents carry a status — a tab per
|
|
313
|
+
directory, a line per document. A full-screen view in a terminal,
|
|
314
|
+
Markdown off one. See "Status".
|
|
315
|
+
- With `claude` in `agents`, `sync` writes the `rness` plugin
|
|
316
|
+
(`.claude/skills/rness/`) in each clone and at the workspace root:
|
|
317
|
+
`/rness:status` in Claude Code. `rness upgrade` syncs, so it adds them;
|
|
318
|
+
then commit `.claude/skills/rness/` in each repository, as its next steps
|
|
319
|
+
list. Until then `sync --check` and `validate` report the files missing.
|
|
320
|
+
- Blocks are unchanged.
|
|
321
|
+
|
|
322
|
+
## 0.10.0 — hooks: the context at session start, validation after an edit
|
|
323
|
+
|
|
324
|
+
- With `claude` in `agents`, `sync` adds two hooks to each clone's
|
|
325
|
+
`.claude/settings.json`, and writes `.claude/settings.json` at the
|
|
326
|
+
workspace root with the same two. See "Hooks". `rness upgrade` syncs, so
|
|
327
|
+
it adds them; then commit `.claude/settings.json` in each repository, as
|
|
328
|
+
its next steps list. Until then `sync --check` and `validate` report the
|
|
329
|
+
hooks missing.
|
|
330
|
+
- A settings file keeps the team's own hooks: rness appends its entries
|
|
331
|
+
after them.
|
|
332
|
+
- Blocks are unchanged.
|
|
333
|
+
|
|
246
334
|
## 0.9.2 — the sync summary reads as a sentence
|
|
247
335
|
|
|
248
336
|
- `rness sync` counts agent files apart from blocks: "4 blocks: 4
|