opennori 0.1.0 → 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.
package/README.md CHANGED
@@ -1,12 +1,52 @@
1
1
  # OpenNori
2
2
 
3
- OpenNori.
3
+ OpenNori helps coding agents deliver results that humans can actually accept.
4
4
 
5
- OpenNori gives coding agents a protocol surface centered on human acceptance criteria and evidence.
6
- The user sees whether the goal is satisfied, why, and what is still missing. The agent can still
7
- plan internally, but progress is determined by acceptance evidence.
5
+ You describe a goal and constraints in natural language. Nori turns that into a Nori Contract:
6
+ human-centered acceptance checks, evidence, and a completion report. The agent can still plan
7
+ internally, but OpenNori treats progress as proven only when the acceptance checks have reviewable
8
+ evidence.
8
9
 
9
- ## Shape
10
+ ## Why It Exists
11
+
12
+ AI agents often do a lot of work while leaving the user unsure whether the original goal is done.
13
+ OpenNori keeps the conversation centered on:
14
+
15
+ - what the user wants to achieve
16
+ - what the user can open, run, see, or judge
17
+ - what evidence supports each acceptance check
18
+ - what is still blocked or missing
19
+ - whether the goal is complete
20
+
21
+ OpenNori is not a phase system, task planner, or process archive. It borrows productization ideas
22
+ from mature agent workflow kits, but the main storyline stays acceptance, evidence, and completion
23
+ judgment.
24
+
25
+ ## Try It
26
+
27
+ ```bash
28
+ npx opennori install --root . --dry-run
29
+ ```
30
+
31
+ For a project install:
32
+
33
+ ```bash
34
+ npm install -D opennori
35
+ npx nori install --root . --dry-run
36
+ npx nori install --root . --confirm
37
+ npx nori doctor --root .
38
+ ```
39
+
40
+ Then talk to your agent:
41
+
42
+ ```text
43
+ Use OpenNori for this project. Start from my goal, define a Nori Contract,
44
+ and keep working only from acceptance gaps until the report says whether it is complete.
45
+ ```
46
+
47
+ ## What Gets Added
48
+
49
+ OpenNori uses one project-local state directory:
10
50
 
11
51
  ```text
12
52
  .opennori/
@@ -21,55 +61,37 @@ plan internally, but progress is determined by acceptance evidence.
21
61
  brainstorms/
22
62
  ```
23
63
 
24
- ## Quick Start
64
+ It does not create a `process/` directory as the main workflow surface.
65
+
66
+ ## Core Commands
25
67
 
26
68
  ```bash
27
- node ./bin/nori.js install --root . --dry-run --json
28
- node ./bin/nori.js install --root . --skill --json
29
- node ./bin/nori.js doctor --root . --json
30
- node ./bin/nori.js skill export --pack --json
31
- node ./bin/nori.js brainstorm --idea "Explore a fuzzy goal before acceptance" --root . --json
32
- node ./bin/nori.js draft --from-brainstorm explore-a-fuzzy-goal-before-acceptance --candidate A --root . --json
33
- node ./bin/nori.js draft --goal "Ship a user-visible task" --root . --json
34
- node ./bin/nori.js approve --root . --summary "User approved acceptance criteria." --json
35
- node ./bin/nori.js init examples/opennori-self.json --root . --json
36
- node ./bin/nori.js resume --root . --json
37
- node ./bin/nori.js next --root . --json
38
- node ./bin/nori.js status --root . --json
39
- node ./bin/nori.js criterion update --root . --criterion AC-P-1 --user-story "作为用户,我能判断当前验收缺口。" --json
40
- node ./bin/nori.js evidence add --root . --criterion AC-P-1 --kind test-summary --summary "User can inspect the Nori Contract." --result passing --basis tool-observation --source '{"type":"command","label":"npm test","command":"npm test","outcome":"passed"}' --reviewability "User can rerun the command." --limitations "Does not prove visual UX." --json
41
- node ./bin/nori.js profile add --root . --type skill --name design-taste-frontend --strength must --purpose "Use this Skill for the design read and theme token pass." --install-policy existing_only --json
42
- node ./bin/nori.js profile add --root . --type stack --name radix-ui --strength prefer --purpose "Use accessible primitives for custom components." --install-policy ask_before_install --json
43
- node ./bin/nori.js profile show --root . --json
44
- node ./bin/nori.js profile evidence --root . --item skill-design-taste-frontend --result satisfied --summary "Agent used the required Skill before implementation." --json
45
- node ./bin/nori.js evaluate --root . --json
46
- node ./bin/nori.js report --root . --json
69
+ nori install --root . --dry-run
70
+ nori install --root . --confirm
71
+ nori doctor --root .
72
+ nori brainstorm --idea "Explore this goal" --root .
73
+ nori draft --goal "Ship a user-visible result" --root .
74
+ nori approve --root . --summary "User approved the acceptance checks."
75
+ nori status --root .
76
+ nori evidence add --root . --criterion AC-1 --kind review-result --summary "..." --result passing
77
+ nori report --root .
47
78
  ```
48
79
 
49
- `nori install` writes `.opennori/manifest.json` with the OpenNori version, managed files, active goals,
50
- optional project Skill Pack state, and supported protocol capabilities. `nori doctor` reports whether a
51
- project is `ready`, `needs-action`, or `broken`, with recovery actions for missing structure, stale
52
- manifest data, broken active goals, and stale Skills.
53
-
54
- `nori install --dry-run` returns an `install_plan` that shows each planned action, asset kind,
55
- managed status, write intent, destructive overwrite flag, and reason. Dry-run plans report
56
- `will_write: 0` so users can review install impact before applying it.
57
-
58
- Real `nori install --force` requires `--confirm`. Preview destructive actions with
59
- `nori install --force --dry-run --json` before applying a confirmed overwrite.
60
-
61
- `nori uninstall --dry-run --json` previews removals. Default uninstall removes entry assets while
62
- preserving active goals, evidence, reports, archives, and brainstorms; deleting `.opennori` state
63
- requires `nori uninstall --include-state --confirm --json`.
80
+ Users should not need to memorize these commands. The OpenNori Skill Pack lets an agent map natural
81
+ language requests to the deterministic CLI state layer.
64
82
 
65
- Evidence is intentionally open-ended. Agents can use tests, diffs, screenshots, logs, artifacts,
66
- URLs, human confirmation, AW doctor, or any other useful signal. OpenNori only requires the submitted
67
- evidence to be reviewable by the user: include a basis, one or more sources, reviewability,
68
- confidence, and limitations when the evidence affects completion.
83
+ ## Productized Boundaries
69
84
 
70
- `nori install --skill` installs the OpenNori Skill Pack under `.agents/skills/`: the root `nori` router
71
- plus focused Skills for acceptance, evidence, Nori Profile, project health, and reporting.
72
- Users keep using natural language; the Skills route agent behavior to the right CLI loop.
85
+ - `install`, `upgrade`, and `uninstall` support preview-first workflows; destructive writes require
86
+ explicit confirmation.
87
+ - `doctor` reports whether project state is `ready`, `needs-action`, or `broken`, with recovery
88
+ actions.
89
+ - Nori Profile records required Skills, preferred stacks, avoided tools, and install policy without
90
+ turning those preferences into user acceptance checks.
91
+ - Evidence stays flexible: tests, screenshots, URLs, artifacts, logs, human confirmation, waivers, or
92
+ other reviewable sources can support an acceptance check.
93
+ - Context export can give review tools the current goal, checks, profile, evidence, and report, but
94
+ review tools do not take over the agent loop.
73
95
 
74
96
  ## Development
75
97
 
@@ -293,6 +293,22 @@
293
293
  "measurement": "运行 nori evidence add,分别使用 --source-command、--source-path、--source-url 和自由 --source 记录证据,再查看 status/report。",
294
294
  "threshold": "证据来源能显示为 command、artifact、url 或自由 reference;report/status 中仍保留 basis、reviewability、limitations 和 confidence。",
295
295
  "risk": "medium"
296
+ },
297
+ {
298
+ "id": "AC-Z-16",
299
+ "layer": "productization",
300
+ "user_story": "作为用户,我通过 npm 获取 OpenNori 后,能使用 nori 入口初始化项目、查看帮助和运行健康检查,而不需要理解迁移历史。",
301
+ "measurement": "在全新临时项目中安装 opennori 包,运行 npx nori --help、npx nori install --root . --dry-run、npx nori install --root . --confirm 和 npx nori doctor --root .。",
302
+ "threshold": "npm registry 显示 opennori@0.1.2 且 bin.nori 指向 bin/nori.js;全新项目安装后 npx nori 可用;dry-run 只预览 .opennori 写入;真实 install 后 doctor 为 ready;项目状态只出现 OpenNori 目录。",
303
+ "risk": "high"
304
+ },
305
+ {
306
+ "id": "AC-Z-17",
307
+ "layer": "productization",
308
+ "user_story": "作为用户,我第一次打开 README 时,能明确知道产品叫 OpenNori,它帮助 agent 交付人类可验收的结果,并看到最短试用入口。",
309
+ "measurement": "阅读 README 的开头、Try It、What Gets Added 和 Productized Boundaries 区域。",
310
+ "threshold": "README 开头说明 OpenNori 的核心价值;页面展示 npm/npx 试用方式、Nori Contract、.opennori 状态目录和验收证据闭环;用户不需要理解迁移历史就能开始试用。",
311
+ "risk": "high"
296
312
  }
297
313
  ]
298
314
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opennori",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "OpenNori: human-centered Nori Contracts and evidence records for coding agents.",
5
5
  "type": "module",
6
6
  "bin": {