@nurix/etna 0.19.15 → 0.19.16
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 +2 -2
- package/data/harness-index.json +2 -2
- package/data/harnesses/code/harness.json +3 -3
- package/data/harnesses/code/hooks/generate-ownership-index.mjs +1 -1
- package/data/harnesses/discover/CLAUDE.md +1 -1
- package/data/harnesses/discover/harness.json +3 -3
- package/data/harnesses/discover/rules/discovery.md +1 -1
- package/data/harnesses/discover/rules/evaluation.md +1 -1
- package/data/harnesses/discover/rules/tradecraft.md +1 -1
- package/data/harnesses/discussion/harness.json +2 -2
- package/data/harnesses/etna/harness.json +2 -2
- package/data/harnesses/hr/harness.json +2 -2
- package/data/harnesses/kb-agi/harness.json +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
CLI to bootstrap a project with a Nurix harness. Copies the harness's `CLAUDE.md`, skills, agents, rules, and hooks (plus scripts, if the harness ships any) into the project so they live with the code — version-controllable, editable per project, and visible without leaving the repo.
|
|
4
4
|
|
|
5
|
-
A second install path also exists and is fully supported: `/plugin install <plugin>@nurixlabs` from inside Claude Code, which installs the harness as a plugin from the `nurixlabs/skills` marketplace. The two paths are first-class equals — pick the one that matches how you want to manage the harness. See [`docs/architecture/harness/
|
|
5
|
+
A second install path also exists and is fully supported: `/plugin install <plugin>@nurixlabs` from inside Claude Code, which installs the harness as a plugin from the `nurixlabs/skills` marketplace. The two paths are first-class equals — pick the one that matches how you want to manage the harness. See [`docs/architecture/harness/Readme.md`](../../docs/architecture/harness/Readme.md#the-install-model) for the comparison.
|
|
6
6
|
|
|
7
7
|
## Usage
|
|
8
8
|
|
|
@@ -66,7 +66,7 @@ Listed by `npx --yes @nurix/etna` (no args) using the bundled `data/harness-inde
|
|
|
66
66
|
|
|
67
67
|
| Plugin name | Source in etna | What it ships |
|
|
68
68
|
| --- | --- | --- |
|
|
69
|
-
| `code` | [`
|
|
69
|
+
| `code` | [`harness/code/`](../../harness/code/) | Governance + session agents, baseline workflow skills, the ownership-index hook (merged single-folder layout) |
|
|
70
70
|
| `kb-agi` | [`plugins/kb-agi/`](../../plugins/kb-agi/) | Knowledge-vault scaffolding |
|
|
71
71
|
|
|
72
72
|
## How it works
|
package/data/harness-index.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"fingerprint": "
|
|
2
|
+
"fingerprint": "12bdf20a3959",
|
|
3
3
|
"harnesses": {
|
|
4
4
|
"code": {
|
|
5
5
|
"plugin": "code",
|
|
6
|
-
"description": "Nurix
|
|
6
|
+
"description": "the foundation every Nurix project starts with"
|
|
7
7
|
},
|
|
8
8
|
"discover": {
|
|
9
9
|
"plugin": "discover",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"harness": "code",
|
|
3
3
|
"name": "code",
|
|
4
|
-
"version": "3.1.
|
|
4
|
+
"version": "3.1.12",
|
|
5
5
|
"files": [
|
|
6
|
-
".prettierrc.json",
|
|
7
6
|
".prettierignore",
|
|
7
|
+
".prettierrc.json",
|
|
8
8
|
".vscode/settings.json"
|
|
9
9
|
],
|
|
10
|
-
"digest": "
|
|
10
|
+
"digest": "cc025f7950c3"
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// harness/code/hooks/generate-ownership-index.mjs — SessionStart hook: scan docs/features/**/*.md,
|
|
2
2
|
// extract the focal frontmatter (owns / module / keywords / status), and inject a compact
|
|
3
3
|
// code-path → owning-doc index via additionalContext. Fires on startup/resume/clear/compact so the
|
|
4
4
|
// map survives /clear and /compact and is regenerated fresh every time. Writes no file.
|
|
@@ -40,7 +40,7 @@ Agent name = dimension name. ⚠ = gated (needs user authorization before dispat
|
|
|
40
40
|
|
|
41
41
|
Cheap, read-only. Scope the target, grade its access, detect which dimensions it exposes.
|
|
42
42
|
|
|
43
|
-
**0. Resolve the corpus root** — the folder this run writes into. The harness chooses it _intelligently_ rather than hardcoding one: default `research/` at the repo root, but if the project already holds a discovery corpus (any folder with a prior run's `*/00-scope-verdict.md`) under another name (`
|
|
43
|
+
**0. Resolve the corpus root** — the folder this run writes into. The harness chooses it _intelligently_ rather than hardcoding one: default `research/` at the repo root, but if the project already holds a discovery corpus (any folder with a prior run's `*/00-scope-verdict.md`) under another name (`discovery/`, `analysis/`, …) **reuse it**, and honor a folder the user names. **Confirm the chosen root in one line** before writing. Every `research/<target>/` path in this harness is the _default form_ — read it as `<corpus>/<target>/`, relative to the resolved root.
|
|
44
44
|
|
|
45
45
|
1. **Scope-feasibility gate** — run the `.claude/rules/discovery.md` Part A (scope gate) algorithm: resolve identity → ambiguity → ethics → suite-size → primitive → reachability. If the verdict isn't `accept`, **halt** (present the narrowing/redirect prompt, or refuse). Write `research/<target>/00-scope-verdict.md`.
|
|
46
46
|
2. **Grade the access vector** (the four axes, with evidence) per `discovery` (Part B).
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"harness": "discover",
|
|
3
3
|
"name": "discover",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.10",
|
|
5
5
|
"files": [
|
|
6
|
-
".prettierrc.json",
|
|
7
6
|
".prettierignore",
|
|
7
|
+
".prettierrc.json",
|
|
8
8
|
".vscode/settings.json"
|
|
9
9
|
],
|
|
10
|
-
"digest": "
|
|
10
|
+
"digest": "a672787b9962"
|
|
11
11
|
}
|
|
@@ -14,7 +14,7 @@ The reference knowledge for **Discovery** (`discover` harness, Mode 1). It carri
|
|
|
14
14
|
|
|
15
15
|
Before Part A, decide **where this run writes** — the harness picks intelligently, it does not hardcode `research/`:
|
|
16
16
|
|
|
17
|
-
1. **Reuse an existing discovery corpus** if the project has one — search for any folder containing a prior run's `*/00-scope-verdict.md` (commonly `research/`, but also `
|
|
17
|
+
1. **Reuse an existing discovery corpus** if the project has one — search for any folder containing a prior run's `*/00-scope-verdict.md` (commonly `research/`, but also `discovery/`, `analysis/`, or a folder the user names).
|
|
18
18
|
2. If several exist, prefer the one the user points at, else the most recently written.
|
|
19
19
|
3. If none exists and the user hasn't named one, default to `research/` at the repo root.
|
|
20
20
|
4. **Confirm the chosen root in one line** before writing `00-scope-verdict.md`.
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
|
|
108
108
|
## Pricing & packaging (plans, what gates what, unit economics — website pricing + platform/limits)
|
|
109
109
|
|
|
110
|
-
## Differentiation (claimed moat vs the
|
|
110
|
+
## Differentiation (claimed moat vs the discovery's read of the real moat — often infra/data)
|
|
111
111
|
|
|
112
112
|
## Alternatives & comparison (named competitors + how it differs)
|
|
113
113
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Discover Harness — Session & Wire Tradecraft (keyboard-level reference)
|
|
2
2
|
|
|
3
|
-
The executable field layer the browser-driving dimensions (`session`, `wire-capture`) reach for at the keyboard. Everything here is **runnable verbatim** — taps, scrubbers, escape snippets — not prose to re-derive. It is the distilled tradecraft from real
|
|
3
|
+
The executable field layer the browser-driving dimensions (`session`, `wire-capture`) reach for at the keyboard. Everything here is **runnable verbatim** — taps, scrubbers, escape snippets — not prose to re-derive. It is the distilled tradecraft from real discovery runs; the `§1.x`/`§2.x` anchors are the origin tags from those runs.
|
|
4
4
|
|
|
5
5
|
**How the dimensions use this file:**
|
|
6
6
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nurix/etna",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.16",
|
|
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": {
|