@gonrocca/nodd 0.1.1 → 0.1.2

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.
Files changed (2) hide show
  1. package/README.md +59 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -18,6 +18,65 @@ than the code does will not turn it red. Prose added next to a fix is therefore
18
18
  the known way this document can drift ahead of the product, and the defence is
19
19
  review, not the suite. Round 3 found three such sentences and closed them.
20
20
 
21
+ ## Install
22
+
23
+ ```bash
24
+ pi install npm:@gonrocca/nodd
25
+ ```
26
+
27
+ Global installation is the path enforcement is verified on. A pi-subagent child
28
+ process does its own ambient discovery and finds installed packages, so gates
29
+ also run inside delegated work — see **Enforcement scope** for what that does
30
+ and does not cover. `pi -e npm:@gonrocca/nodd` runs the package for one session
31
+ without installing it, and in that mode children do **not** load it: the parent
32
+ is gated and delegated work is not.
33
+
34
+ Install into one project instead of the whole account with `-l`, which writes
35
+ `.pi/settings.json`. Remove with `pi remove npm:@gonrocca/nodd`.
36
+
37
+ Nothing is configured after install: every gate is on, the flags are documented
38
+ under **Flags, the kill switch and the escape hatch**, and model slots keep
39
+ pi's defaults until `/nodd-models` is run.
40
+
41
+ ## Using it
42
+
43
+ NODD runs on its own. A normal session looks like this:
44
+
45
+ **Read-only work stays read-only.** Ask a question and nothing changes. Declare
46
+ intent `read-only` and a write is refused by `gate-authorize`.
47
+
48
+ **Substantial work is declared before the first write.** The agent calls
49
+ `nodd_declare` with the slug, the route, the files and — this is the part worth
50
+ caring about — the `runner`: the command a checkoff will be measured against.
51
+
52
+ ```
53
+ nodd_declare slug: dark-mode title: "Dark mode" summary: "Theme the editor"
54
+ intent: change route: tracked
55
+ runner: "npm test" tdd: strict files: [src/theme.ts]
56
+ → .nodd/dark-mode/feature.md created with 0 tasks
57
+ ```
58
+
59
+ Until that file exists, the first write is refused. The refusal says what to do
60
+ about it.
61
+
62
+ **Tasks are checked off with observed runs, not with claims.** `nodd_task` marks
63
+ an item done only when `gate-evidence` finds four facts lined up: a success, of
64
+ the declared runner, after the task's last write, with a RED before it under
65
+ strict TDD. A model writing "all tests pass" changes nothing — the evidence line
66
+ in the document is rendered from the observed tool result, never from prose.
67
+
68
+ **When a gate is wrong, turn it off.** `/nodd-gates off track` disables it
69
+ entirely and stays disabled; `/nodd-allow track` grants exactly one override.
70
+ Neither is argued with.
71
+
72
+ **When the work outgrows NODD, promote it.** `/nodd-promote dark-mode` writes
73
+ `.sdd/dark-mode/requirements.md` and `/forge --continue dark-mode` starts at its
74
+ plan phase with the finished work as context.
75
+
76
+ To watch it work on something disposable, run `pi` in an empty git repo and ask
77
+ for a two-file change: the declaration is demanded before the first write, and
78
+ the first checkoff without a real test run is refused.
79
+
21
80
  ## The seven canonical steps
22
81
 
23
82
  `authorize` → `explore` → `resolve-uncertainty` → `classify` → `track` →
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gonrocca/nodd",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Non-negotiable Organic Driven Development — the ODD protocol as runtime mechanism for pi: blocking gates, observed evidence, and promotion to /forge.",
5
5
  "type": "module",
6
6
  "keywords": [