@rness/cli 0.15.1 → 0.17.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 +82 -16
- package/dist/bin/rness.js +1 -1
- package/dist/{chunk-7IVHL744.js → chunk-X52SHBRY.js} +1069 -237
- package/dist/chunk-X52SHBRY.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-7IVHL744.js.map +0 -1
package/README.md
CHANGED
|
@@ -29,7 +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 status [<tab>]
|
|
32
|
-
rness pulse create [-y]
|
|
32
|
+
rness pulse create [<collection>] [-y]
|
|
33
33
|
rness pulse sync
|
|
34
34
|
rness validate
|
|
35
35
|
rness mcp
|
|
@@ -119,9 +119,10 @@ the files a given agent needs, for the agents the team declares in
|
|
|
119
119
|
A new document takes the collection's first status (`Proposed` for an
|
|
120
120
|
ADR, `Draft` otherwise) and the next number of the local checkout; two
|
|
121
121
|
branches can pick the same one. Each skill records its session: it adds
|
|
122
|
-
|
|
123
|
-
writes or closes
|
|
124
|
-
|
|
122
|
+
`{ id: <session id>, agent: <model> }` to `sessions:` in the front matter
|
|
123
|
+
of what it writes or closes. The agent is the model it runs as, as Claude
|
|
124
|
+
Code names it (`Claude Opus 5.5`): no variable gives it to a skill. An
|
|
125
|
+
edit made without a skill leaves none. No skill commits.
|
|
125
126
|
- rness owns values, not files: what is missing is added, nothing else is
|
|
126
127
|
touched, and a file it cannot parse is reported, never rewritten.
|
|
127
128
|
`sync --check` and `validate` report a missing value. Removing an agent
|
|
@@ -170,8 +171,9 @@ status, it received the problem. The `sh` line is not verified on Windows.
|
|
|
170
171
|
|
|
171
172
|
### Pulse
|
|
172
173
|
|
|
173
|
-
rness pulse create
|
|
174
|
-
rness pulse
|
|
174
|
+
rness pulse create # once per organization: the board, then a first sync
|
|
175
|
+
rness pulse create marketing # a collection's own project (0.17.0)
|
|
176
|
+
rness pulse sync # every declared project, as often as wanted
|
|
175
177
|
|
|
176
178
|
A projection of rness's state on the organization's GitHub Projects: a
|
|
177
179
|
project named **Agent Pulse**, where the team sees — and reads — every
|
|
@@ -234,17 +236,22 @@ in its Settings`.
|
|
|
234
236
|
collection fields' options: every contract status plus the ones found in
|
|
235
237
|
`.rness/`, in lifecycle order, at most 50), `Collection` (one option per tab of
|
|
236
238
|
`rness status`; not `Type`, which is GitHub's own issue-type field and
|
|
237
|
-
filter), `Agent` (`working`), `
|
|
238
|
-
agent type for a subagent
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
239
|
+
filter), `Agent` (`working`), `Working session` (`claude · 1a2b3c4d`,
|
|
240
|
+
plus the agent type for a subagent: the session working on the document
|
|
241
|
+
now, cleared when it ends), `Path`, and `Session history` — the
|
|
242
|
+
document's `sessions:` (see "Agent targets"), each `Claude Opus 5.5 ·
|
|
243
|
+
<id>` (the id alone for an entry without its agent), joined by `, `,
|
|
244
|
+
written by sync and never cleared: which sessions wrote a specification
|
|
245
|
+
or implemented a plan, after they ended (`claude --resume <id>` reopens
|
|
246
|
+
one on the machine it ran on). A board made before 0.15.0 gains
|
|
247
|
+
`Session history` at its next sync; one from 0.15 has its `Session` and
|
|
248
|
+
`Sessions` renamed in place, values and views kept (`renamed field
|
|
249
|
+
Session → Working session`). A board per directory, named as
|
|
243
250
|
`rness status` names its tab, filtered on its `Collection`, its columns
|
|
244
251
|
that collection's own steps: each collection has its own status field
|
|
245
252
|
(`ADR status`, `Specs status`, …; a directory without statuses is columned
|
|
246
253
|
by `Status`, which holds them all for the `All` table). `pulse sync`
|
|
247
|
-
remakes a board built by an earlier version (its URL changes once); a `Working` table, filtered on `Agent: working`. A first view named `View 1` (GitHub's default) becomes `All` when no `All` exists, on create and on sync, showing Title, Collection, Status and
|
|
254
|
+
remakes a board built by an earlier version (its URL changes once); a `Working` table, filtered on `Agent: working`. A first view named `View 1` (GitHub's default) becomes `All` when no `All` exists, on create and on sync, showing Title, Collection, Status and Working session. Options are coloured (statuses by lifecycle: blue proposed, purple approved, yellow in progress, red blocked or rejected, yellow superseded, green done, gray abandoned; collections and `working` too); a sync recolours rness's options and leaves other options' colours alone. rness does
|
|
248
255
|
not set the project's visibility: the project gets GitHub's default for a
|
|
249
256
|
new organization project, which is private (`public: false`). Verified
|
|
250
257
|
with Claude Code 2.1.284 on 2026-09-29.
|
|
@@ -262,7 +269,7 @@ in its Settings`.
|
|
|
262
269
|
repositories.
|
|
263
270
|
- **`pulse create`** needs an `org` in `rness.json` (a blank workspace is
|
|
264
271
|
refused) and no pulse yet. It creates the project and at once writes
|
|
265
|
-
`"
|
|
272
|
+
`"projects": { "pulse": <number> }` (and the `provider`) into `rness.json`,
|
|
266
273
|
then adds the fields, options and views, and runs a first sync; its
|
|
267
274
|
`created` lines say what it added. If a step after the project fails, it
|
|
268
275
|
exits 1 with the pulse declared, and `rness pulse sync` completes the
|
|
@@ -291,6 +298,33 @@ unchanged`.
|
|
|
291
298
|
as the team's item. A workflow someone turns on (`Item closed`, `Item
|
|
292
299
|
added to project`) may change a field of rness's items; the next sync
|
|
293
300
|
writes it back.
|
|
301
|
+
- **A collection's own project** (0.17.0): `rness pulse create <collection>`
|
|
302
|
+
gives a directory of `.rness/` whose documents carry a status — a tab of
|
|
303
|
+
`rness status` — a project of its own, named after it, declared as
|
|
304
|
+
`"projects": { "pulse": 4, "marketing": 5 }`. Agent Pulse keeps every
|
|
305
|
+
other collection and the `Working` table; the collection's items leave
|
|
306
|
+
it (`deleteProjectV2Item`, their issues untouched) once its project
|
|
307
|
+
holds them. `pulse sync` syncs the collections' projects, then Agent
|
|
308
|
+
Pulse. The project is written from the collection's files, one way:
|
|
309
|
+
- `<collection>/README.md` is its README; its front matter may give
|
|
310
|
+
`description:` (the short description), `statuses:` (the columns, in
|
|
311
|
+
order, each there even when empty), `fields:` (each a name, a `type` —
|
|
312
|
+
`text`, `date`, `select`, `number` — and `from`, the front-matter key
|
|
313
|
+
of the documents that fills it, or a list of keys, the first present
|
|
314
|
+
one winning; a `select` may give `options:`) and `labels:` (`directory`,
|
|
315
|
+
the subdirectory a document sits in, or a front-matter key). A date
|
|
316
|
+
field adds a `Calendar` roadmap; which date it draws is set once in the
|
|
317
|
+
view's settings: GitHub's API does not set it.
|
|
318
|
+
- `<collection>/updates/<date>.md` are its status updates: `health`
|
|
319
|
+
(`on-track`, `at-risk`, `off-track`, `complete` or `inactive`),
|
|
320
|
+
optionally `start_date` and `target_date`, the text below. Each is posted once, in
|
|
321
|
+
the order of the names, and updated when its file changes; a deleted
|
|
322
|
+
file leaves its update.
|
|
323
|
+
|
|
324
|
+
rness adds no field or label of its own to a collection's project, and
|
|
325
|
+
none of this reaches Agent Pulse: a workspace that declares no collection
|
|
326
|
+
keeps its board as 0.16 made it.
|
|
327
|
+
|
|
294
328
|
- **Hooks**, with `claude` in `agents` and a pulse declared: session start
|
|
295
329
|
marks the `In progress` plans of the session's scope `Agent: working`, with
|
|
296
330
|
the session; an edit of a document of `.rness/` marks it — one the agent has just written, with no item yet, gets its issue first
|
|
@@ -349,10 +383,12 @@ repository, the board).
|
|
|
349
383
|
GitLab host reads as `gitlab`, any other host — or no repository — as
|
|
350
384
|
`github`. Nothing to change: `pulse create` writes it, and refuses a
|
|
351
385
|
detected provider this version cannot talk to. The order of keys is
|
|
352
|
-
`contract`, `provider`, `org`, `agents`, `
|
|
386
|
+
`contract`, `provider`, `org`, `agents`, `projects`, `repos`, `scopes`.
|
|
387
|
+
The former `"pulse": { "project": <number> }` still reads, as
|
|
388
|
+
`"projects": { "pulse": <number> }`; both at once are refused.
|
|
353
389
|
- A provider _written_ in `rness.json` that this version cannot talk to
|
|
354
390
|
(`gitlab`) is refused by `validate`, `create`, `login` and `pulse`:
|
|
355
|
-
`provider "gitlab" is not supported by @rness/cli 0.
|
|
391
|
+
`provider "gitlab" is not supported by @rness/cli 0.17.0 (supported:
|
|
356
392
|
github)`. `add`, `sync` and the local commands never refuse. `null` is not a
|
|
357
393
|
value: an absent key means none.
|
|
358
394
|
|
|
@@ -529,6 +565,36 @@ per repository, the files to commit there.
|
|
|
529
565
|
Exit codes: 0 success, 1 failure, 2 usage — or a refusal without a TTY.
|
|
530
566
|
`RNESS_DEBUG=1` adds stack traces; `RNESS_NO_DELEGATE=1` skips the delegation.
|
|
531
567
|
|
|
568
|
+
## 0.17.0 — a collection on its own GitHub Project
|
|
569
|
+
|
|
570
|
+
- `rness pulse create <collection>` gives a collection of `.rness/` a
|
|
571
|
+
project of its own; `rness pulse sync` syncs every declared project. The
|
|
572
|
+
collection's `README.md` gives the project its README, short
|
|
573
|
+
description, columns, fields and labels, and `updates/` its status
|
|
574
|
+
updates. See "Pulse".
|
|
575
|
+
- `rness.json` names the projects in `"projects": { "pulse": 4 }`; the
|
|
576
|
+
former `"pulse": { "project": 4 }` still reads, and is written in the new
|
|
577
|
+
form whenever rness writes the file. A CLI older than 0.17.0 refuses
|
|
578
|
+
`projects`: move the pin first (`rness upgrade`).
|
|
579
|
+
- For the package's API: `Manifest.pulse` is now `Manifest.projects`.
|
|
580
|
+
- A workspace that declares no collection's project sees no change on
|
|
581
|
+
Agent Pulse. Blocks are unchanged.
|
|
582
|
+
|
|
583
|
+
## 0.16.0 — Working session and Session history; the agent in the history
|
|
584
|
+
|
|
585
|
+
- Agent Pulse's session fields are renamed so that the names say what
|
|
586
|
+
they hold: `Session` becomes `Working session` (the session working on
|
|
587
|
+
a document now) and `Sessions` becomes `Session history` (every session
|
|
588
|
+
that changed it). The first `pulse sync` with 0.16.0 renames them in
|
|
589
|
+
place: values, ids and views stay. Until then, marks use whichever name
|
|
590
|
+
the board has. See "Pulse".
|
|
591
|
+
- `Session history` names each session's agent: `Claude Opus 5.5 ·
|
|
592
|
+
1e9cb41b-…`. The lifecycle skills now record `{ id, agent }` in
|
|
593
|
+
`sessions:`; a bare id, as 0.15 wrote it, still reads, and shows alone.
|
|
594
|
+
`rness upgrade` rewrites the four skills: commit `.claude/skills/rness/`
|
|
595
|
+
in each repository. See "Agent targets".
|
|
596
|
+
- Blocks are unchanged.
|
|
597
|
+
|
|
532
598
|
## 0.15.1 — upgrade names every file to commit
|
|
533
599
|
|
|
534
600
|
- `rness upgrade`'s next steps name every file the new version's sync
|