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 +70 -48
- package/examples/opennori-self.json +16 -0
- package/package.json +1 -1
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
64
|
+
It does not create a `process/` directory as the main workflow surface.
|
|
65
|
+
|
|
66
|
+
## Core Commands
|
|
25
67
|
|
|
26
68
|
```bash
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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
|
-
`
|
|
71
|
-
|
|
72
|
-
|
|
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
|
}
|