@nurix/etna 0.19.12 → 0.19.13

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
@@ -9,15 +9,17 @@ A second install path also exists and is fully supported: `/plugin install <plug
9
9
  From the root of the project you want to bootstrap, pick a harness from the interactive menu:
10
10
 
11
11
  ```sh
12
- npx @nurix/etna
12
+ npx --yes @nurix/etna
13
13
  ```
14
14
 
15
15
  …or install one directly by name:
16
16
 
17
17
  ```sh
18
- npx @nurix/etna --name=code
18
+ npx --yes @nurix/etna --name=code
19
19
  ```
20
20
 
21
+ The `--yes` flag skips npx's install confirmation, so the command runs unattended. On startup the CLI also **self-updates**: it checks the registry and, if the copy npx resolved is behind the latest published version, re-execs the latest before installing — so `npx --yes @nurix/etna` always runs the newest harness, even when npx has an older copy cached. The check is quick but synchronous; set `ETNA_NO_SELFUPDATE=1` to skip it (CI, offline, or a pinned local build).
22
+
21
23
  After this completes:
22
24
 
23
25
  ```
@@ -37,7 +39,7 @@ your-project/
37
39
 
38
40
  That's the entire footprint. Nothing is written outside the project. No marketplace registration, no `enabledPlugins` entry, no global cache dependency — Claude Code picks up the project-scoped agents/skills/rules on its next session start, and the hooks wire in through `.claude/settings.json`.
39
41
 
40
- Re-run `npx @nurix/etna --name=code` anytime to refresh the harness content with what the latest published package ships. Existing same-named files are overwritten; files you've added that aren't part of the harness are left alone. In a git repo the previous `CLAUDE.md` is overwritten in place (recover it with `git checkout CLAUDE.md`); outside a git repo it's backed up to `CLAUDE.md.bak.<ISO-timestamp>`. Because the new `harness.json` carries the installed `{version, digest}`, a re-run whose **major** version is ahead of your repo's stamped `harness-version` is what the reconcile (below) detects as a structural upgrade.
42
+ Re-run `npx --yes @nurix/etna --name=code` anytime to refresh the harness content with what the latest published package ships. Existing same-named files are overwritten; files you've added that aren't part of the harness are left alone. In a git repo the previous `CLAUDE.md` is overwritten in place (recover it with `git checkout CLAUDE.md`); outside a git repo it's backed up to `CLAUDE.md.bak.<ISO-timestamp>`. Because the new `harness.json` carries the installed `{version, digest}`, a re-run whose **major** version is ahead of your repo's stamped `harness-version` is what the reconcile (below) detects as a structural upgrade.
41
43
 
42
44
  ## After install: bootstrap the harness
43
45
 
@@ -60,7 +62,7 @@ The `nurixlabs` marketplace entry in `~/.claude/settings.json` is harmless to le
60
62
 
61
63
  ## Available harnesses
62
64
 
63
- Listed by `npx @nurix/etna` (no args) using the bundled `data/harness-index.json`.
65
+ Listed by `npx --yes @nurix/etna` (no args) using the bundled `data/harness-index.json`.
64
66
 
65
67
  | Plugin name | Source in etna | What it ships |
66
68
  | --- | --- | --- |
@@ -1,5 +1,5 @@
1
1
  {
2
- "fingerprint": "c645e418f50b",
2
+ "fingerprint": "13b2eaeeecb2",
3
3
  "harnesses": {
4
4
  "code": {
5
5
  "plugin": "code",
@@ -23,7 +23,7 @@ Out of scope (handled by the `boundary` skill, which derives contracts dynamical
23
23
 
24
24
  Decide the mode once, up front, from the version marker — then run.
25
25
 
26
- 1. Resolve the **installed harness version** (semver): read `version` from `.claude/harness.json`, shipped by the CLI at install. Never a number baked into this file. If `.claude/harness.json` is absent, the install predates the marker ⇒ instruct the user to re-run `npx @nurix/etna --name=<harness>`, then retry. The resolved version's **major** is the structural-shape signal — a major bump means the mandated `docs/` shape changed.
26
+ 1. Resolve the **installed harness version** (semver): read `version` from `.claude/harness.json`, shipped by the CLI at install. Never a number baked into this file. If `.claude/harness.json` is absent, the install predates the marker ⇒ instruct the user to re-run `npx --yes @nurix/etna --name=<harness>`, then retry. The resolved version's **major** is the structural-shape signal — a major bump means the mandated `docs/` shape changed.
27
27
  2. Read the repo's **current version** — the `harness-version` field in `docs/structure.md` frontmatter (a semver).
28
28
  - **Absent** ⇒ the repo is unharnessed ⇒ **baseline mode** (reconcile from nothing), then audit.
29
29
  - **Behind on major** ⇒ the mandated shape changed ⇒ **baseline mode** (reconcile across the gap), then audit.
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "92dafa9099ea"
10
+ "digest": "12a37e3bf155"
11
11
  }
@@ -11,7 +11,7 @@ You are the **discussion-baseline** agent. One job: converge a workspace to the
11
11
 
12
12
  Decide once, up front, from two reads:
13
13
 
14
- - **Installed version** — `version` in `.claude/harness.json`, shipped by the CLI at install. If `harness.json` is absent, stop and instruct the user to run `npx @nurix/etna --name=discussion`, then retry.
14
+ - **Installed version** — `version` in `.claude/harness.json`, shipped by the CLI at install. If `harness.json` is absent, stop and instruct the user to run `npx --yes @nurix/etna --name=discussion`, then retry.
15
15
  - **Workspace version** — the `harness-version:` field in the YAML frontmatter of `metadata/TOPICS.md`.
16
16
 
17
17
  | Workspace version | Mode |
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "670ff91f4b1b"
10
+ "digest": "6fc08db4ab3c"
11
11
  }
@@ -23,7 +23,7 @@ Out of scope (handled by the `boundary` skill, which derives contracts dynamical
23
23
 
24
24
  Decide the mode once, up front, from the version marker — then run.
25
25
 
26
- 1. Resolve the **installed harness version** (semver): read `version` from `.claude/harness.json`, shipped by the CLI at install. Never a number baked into this file. If `.claude/harness.json` is absent, the install predates the marker ⇒ instruct the user to re-run `npx @nurix/etna --name=<harness>`, then retry. The resolved version's **major** is the structural-shape signal — a major bump means the mandated `docs/` shape changed.
26
+ 1. Resolve the **installed harness version** (semver): read `version` from `.claude/harness.json`, shipped by the CLI at install. Never a number baked into this file. If `.claude/harness.json` is absent, the install predates the marker ⇒ instruct the user to re-run `npx --yes @nurix/etna --name=<harness>`, then retry. The resolved version's **major** is the structural-shape signal — a major bump means the mandated `docs/` shape changed.
27
27
  2. Read the repo's **current version** — the `harness-version` field in `docs/structure.md` frontmatter (a semver).
28
28
  - **Absent** ⇒ the repo is unharnessed ⇒ **baseline mode** (reconcile from nothing), then audit.
29
29
  - **Behind on major** ⇒ the mandated shape changed ⇒ **baseline mode** (reconcile across the gap), then audit.
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "ac886b2bc4b1"
10
+ "digest": "cfa478ce100b"
11
11
  }
@@ -21,7 +21,7 @@ Pick the mode from what the user hands you:
21
21
 
22
22
  ## Step 0 — first run
23
23
 
24
- If the `interview-eval` skill isn't resolvable (no `.claude/skills/interview-eval/`), this project isn't set up — tell the user to run `npx @nurix/etna --name=hr` (or point you at the skill) before continuing. Confirm `python3` is on PATH; the extractor is stdlib-only and needs nothing else.
24
+ If the `interview-eval` skill isn't resolvable (no `.claude/skills/interview-eval/`), this project isn't set up — tell the user to run `npx --yes @nurix/etna --name=hr` (or point you at the skill) before continuing. Confirm `python3` is on PATH; the extractor is stdlib-only and needs nothing else.
25
25
 
26
26
  ## Step 1 — intake interview
27
27
 
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "6d11004d6849"
10
+ "digest": "1d5cfc7eb67e"
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurix/etna",
3
- "version": "0.19.12",
3
+ "version": "0.19.13",
4
4
  "description": "Bootstrap a project with a Nurix harness — copies the harness's CLAUDE.md, skills, agents, rules, and hooks directly into the project from a bundled payload (no marketplace fetch, no network).",
5
5
  "type": "module",
6
6
  "bin": {