@rness/cli 0.17.1 → 0.17.3

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 CHANGED
@@ -98,7 +98,11 @@ the files a given agent needs, for the agents the team declares in
98
98
  get a Claude Code plugin, `.claude/skills/rness/`, with five commands:
99
99
  `/rness:status [tab]`, the tables of `rness status`, and the lifecycle
100
100
  skills below. rness owns those files whole — an edit by hand is reported
101
- by `sync --check` and written back by `sync`. Nothing in them depends on
101
+ by `sync --check` and written back by `sync`. The plugin's manifest,
102
+ `.claude-plugin/plugin.json`, also carries the agent-plugins.org
103
+ `$schema`, the author, homepage, repository, licence and keywords, so a
104
+ scanner that looks for an Agent Plugins manifest finds one; Claude Code
105
+ reads the same file. Nothing in them depends on
102
106
  the version; the last line of the status skill names the workspace's
103
107
  package manager, so changing `packageManager` in `.rness/package.json`
104
108
  leaves it stale until the next `sync`. Claude Code loads the plugin once
@@ -114,7 +118,8 @@ the files a given agent needs, for the agents the team declares in
114
118
  it asks, one question at a time. The skill stays in the conversation for
115
119
  the next turns, and the file carries the work to the next session
116
120
  (`/rness:adr 0010` reopens it). The agent may start one itself — an ADR
117
- when a choice is expensive to reverse — but writes nothing without a yes.
121
+ when a choice is expensive to reverse — but writes nothing without a yes,
122
+ except `/rness:done` on a plan whose last task has just passed.
118
123
  The rules stay in `.rness/CONVENTIONS.md`; the skills only add the steps.
119
124
  A new document takes the collection's first status (`Proposed` for an
120
125
  ADR, `Draft` otherwise) and the next number of the local checkout; two
@@ -122,7 +127,13 @@ the files a given agent needs, for the agents the team declares in
122
127
  `{ id: <session id>, agent: <model> }` to `sessions:` in the front matter
123
128
  of what it writes or closes. The agent is the model it runs as, as Claude
124
129
  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.
130
+ edit made without a skill leaves none. The agent moves a status with the
131
+ work (a plan `In progress`, then `Completed`; a specification
132
+ `Implemented`) and whenever the developer says so; accepting an ADR or
133
+ approving a specification stays the developer's unless they asked it to
134
+ go ahead. Each skill ends in a commit of the files the agent alone
135
+ changed, added by name; a file someone else changed too is left
136
+ uncommitted and named. No skill pushes.
126
137
  - rness owns values, not files: what is missing is added, nothing else is
127
138
  touched, and a file it cannot parse is reported, never rewritten.
128
139
  `sync --check` and `validate` report a missing value. Removing an agent
@@ -565,6 +576,37 @@ per repository, the files to commit there.
565
576
  Exit codes: 0 success, 1 failure, 2 usage — or a refusal without a TTY.
566
577
  `RNESS_DEBUG=1` adds stack traces; `RNESS_NO_DELEGATE=1` skips the delegation.
567
578
 
579
+ ## 0.17.3 — the packages name the product; the plugin manifest for scanners
580
+
581
+ - `homepage` of `@rness/cli`, `create-rness` and `@rness/create` is
582
+ `https://rness.dev`; `repository` and `bugs` stay on GitHub. That is
583
+ how a scanner tells an official package from a fork;
584
+ `pnpm check:versions` checks it with the versions.
585
+ - `.claude/skills/rness/.claude-plugin/plugin.json`, written by the Claude
586
+ target, carries the agent-plugins.org `$schema`, the author, homepage,
587
+ repository, licence and keywords. `rness sync` rewrites it once in each
588
+ repository; commit it there.
589
+ - `skills/rness/SKILL.md` at the root of the repository: when to use Rness
590
+ and how to install and run it, for `npx skills add rness-dev/rness`
591
+ and skills.sh.
592
+
593
+ ## 0.17.2 — the lifecycle skills move statuses and commit their files
594
+
595
+ - `/rness:adr`, `/rness:spec`, `/rness:plan` and `/rness:done` let the
596
+ agent move a status as the work does — a plan `In progress` as its tasks
597
+ start, `Completed` once they pass, a specification `Implemented` with its
598
+ last plan — and whenever the developer says so. Accepting an ADR or
599
+ approving a specification stays the developer's unless they asked the
600
+ agent to go ahead. `/rness:done` closes a plan whose last task has just
601
+ passed without asking first.
602
+ - Each of them ends in a commit of the files the agent alone changed, in
603
+ their repository, added by name. A file that had uncommitted changes
604
+ before the agent's first edit, or that someone else changed since, is
605
+ left out and named. Nothing is pushed. Until now they committed nothing,
606
+ which left their files for someone else to find.
607
+ - `rness upgrade` rewrites the four skills under `.claude/skills/rness/`;
608
+ commit them in each repository, as its next steps list.
609
+
568
610
  ## 0.17.1 — pulse shows it is at work
569
611
 
570
612
  - `pulse create` and `pulse sync` show a transient line while they write a
package/dist/bin/rness.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  findDelegate,
7
7
  reportError,
8
8
  run
9
- } from "../chunk-GAZDKEOH.js";
9
+ } from "../chunk-MMPMXYZU.js";
10
10
 
11
11
  // src/bin/rness.ts
12
12
  import { pathToFileURL } from "url";
@@ -508,7 +508,7 @@ function parseRepoSpec(spec, org, host) {
508
508
  }
509
509
 
510
510
  // src/version.ts
511
- var VERSION = "0.17.1";
511
+ var VERSION = "0.17.3";
512
512
 
513
513
  // src/core/pm.ts
514
514
  import { execFile as execFile2 } from "child_process";
@@ -4315,8 +4315,21 @@ import { dirname as dirname4, join as join14 } from "path";
4315
4315
  var PLUGIN = ".claude/skills/rness";
4316
4316
  var PLUGIN_JSON = `${JSON.stringify(
4317
4317
  {
4318
+ $schema: "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
4318
4319
  name: "rness",
4319
- description: "The rness workspace in Claude Code: /rness:status, /rness:adr, /rness:spec, /rness:plan, /rness:done."
4320
+ description: "The rness workspace in Claude Code: /rness:status, /rness:adr, /rness:spec, /rness:plan, /rness:done.",
4321
+ author: { name: "rness-dev", url: "https://rness.dev" },
4322
+ homepage: "https://rness.dev",
4323
+ repository: "https://github.com/rness-dev/rness",
4324
+ license: "MIT",
4325
+ keywords: [
4326
+ "rness",
4327
+ "agents",
4328
+ "claude-code",
4329
+ "adr",
4330
+ "specification",
4331
+ "plan"
4332
+ ]
4320
4333
  },
4321
4334
  null,
4322
4335
  2
@@ -4345,6 +4358,17 @@ then \`npx @rness/cli status\` (q to close), then \`fg\`; or in another
4345
4358
  terminal, from the workspace's \`.rness/\`: \`${localRunner(pm)} rness status\`._
4346
4359
  `;
4347
4360
  }
4361
+ var STATUS_RULE = `Move a status yourself when the work calls for it, and whenever the
4362
+ developer says so: a plan \`In progress\` as you start its tasks,
4363
+ \`Completed\` once they pass; a specification \`Implemented\` with its last
4364
+ plan; a document \`Superseded\` by the one that replaces it. Accepting a
4365
+ decision \u2014 an ADR \`Accepted\`, a specification \`Approved\` \u2014 is the
4366
+ developer's, unless they asked you to go ahead with the work.`;
4367
+ var COMMIT_RULE = `Commit each file you changed, in its own repository, and only the files
4368
+ you alone changed: add them by name, never \`git add -A\` nor \`commit -a\`.
4369
+ A file that had uncommitted changes before your first edit (\`git status\`
4370
+ tells you), or that someone else changed since, stays uncommitted: say
4371
+ which. Never push.`;
4348
4372
  var LIFECYCLE2 = [
4349
4373
  {
4350
4374
  name: "adr",
@@ -4381,9 +4405,12 @@ Writing:
4381
4405
  \`Claude\`: for example \`Claude Opus 5.5\`.
4382
4406
  - The rness hook checks every edit under \`${rness}/\`: fix what it reports.
4383
4407
 
4384
- After writing: give the path and the Decision section, and say the ADR
4385
- stays \`Proposed\` until the developer accepts it. Change a status only when
4386
- the developer says so. Do not commit.
4408
+ After writing: give the path and the Decision section. The ADR stays
4409
+ \`Proposed\` until it is accepted.
4410
+
4411
+ ${STATUS_RULE}
4412
+
4413
+ ${COMMIT_RULE}
4387
4414
  `
4388
4415
  },
4389
4416
  {
@@ -4422,9 +4449,13 @@ Writing:
4422
4449
  \`Claude\`: for example \`Claude Opus 5.5\`.
4423
4450
  - The rness hook checks every edit under \`${rness}/\`: fix what it reports.
4424
4451
 
4425
- After writing: give the path and the summary. It stays \`Draft\` until the
4426
- developer moves it (\`Proposed\` for review, \`Approved\` to plan it). No plan
4427
- here: \`/rness:plan NNNN\` once approved. Do not commit.
4452
+ After writing: give the path and the summary. It starts \`Draft\`:
4453
+ \`Proposed\` for review, \`Approved\` to plan it. No plan here:
4454
+ \`/rness:plan NNNN\` once approved.
4455
+
4456
+ ${STATUS_RULE}
4457
+
4458
+ ${COMMIT_RULE}
4428
4459
  `
4429
4460
  },
4430
4461
  {
@@ -4466,8 +4497,13 @@ Writing:
4466
4497
  \`Claude\`: for example \`Claude Opus 5.5\`.
4467
4498
  - The rness hook checks every edit under \`${rness}/\`: fix what it reports.
4468
4499
 
4469
- After writing: give the path and the list of tasks. It becomes \`Ready\` when
4470
- the developer agrees. Do not commit.
4500
+ After writing: give the path and the list of tasks. It starts \`Draft\`, and
4501
+ becomes \`Ready\` once the developer agrees with it or asks you to carry it
4502
+ out.
4503
+
4504
+ ${STATUS_RULE}
4505
+
4506
+ ${COMMIT_RULE}
4471
4507
  `
4472
4508
  },
4473
4509
  {
@@ -4481,8 +4517,9 @@ Arguments: \`$ARGUMENTS\`.
4481
4517
 
4482
4518
  1. The plan: the one named, else the one \`In progress\`. Several or none:
4483
4519
  ask.
4484
- 2. If the developer did not ask to close it in so many words, propose it in
4485
- a single line and wait for a yes.
4520
+ 2. The developer asked to close it, or its last task has just passed in
4521
+ this session: close it. Otherwise propose it in a single line and wait
4522
+ for a yes.
4486
4523
  3. Read the plan, its specification and \`${rness}/CONVENTIONS.md\`.
4487
4524
  4. Evidence first. For each task, what shows it done: a test, a build, a
4488
4525
  command's output in this session. A task without evidence: run its
@@ -4504,7 +4541,9 @@ Arguments: \`$ARGUMENTS\`.
4504
4541
  blocker written in it. Say what remains.
4505
4542
  7. The rness hook checks every edit under \`${rness}/\`: fix what it reports.
4506
4543
 
4507
- After: list the files changed and the statuses moved. Do not commit.
4544
+ After: list the files changed and the statuses moved.
4545
+
4546
+ ${COMMIT_RULE}
4508
4547
  `
4509
4548
  }
4510
4549
  ];
@@ -9579,4 +9618,4 @@ export {
9579
9618
  OWN_COMMANDS,
9580
9619
  catchUp
9581
9620
  };
9582
- //# sourceMappingURL=chunk-GAZDKEOH.js.map
9621
+ //# sourceMappingURL=chunk-MMPMXYZU.js.map