opennori 0.1.6 → 0.1.8
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/.agents/plugins/marketplace.json +20 -0
- package/.opennori/protocol.md +127 -23
- package/LICENSE +674 -21
- package/README.md +216 -50
- package/bin/opennori.js +39 -14
- package/dist/bin/opennori.d.ts +4 -0
- package/dist/bin/opennori.d.ts.map +1 -0
- package/dist/bin/opennori.js +42 -0
- package/dist/bin/opennori.js.map +1 -0
- package/dist/src/acceptance.d.ts +14 -0
- package/dist/src/acceptance.d.ts.map +1 -0
- package/dist/src/acceptance.js +326 -0
- package/dist/src/acceptance.js.map +1 -0
- package/dist/src/architecture/agent-surface.d.ts +6 -0
- package/dist/src/architecture/agent-surface.d.ts.map +1 -0
- package/dist/src/architecture/agent-surface.js +70 -0
- package/dist/src/architecture/agent-surface.js.map +1 -0
- package/dist/src/architecture/baseline.d.ts +12 -0
- package/dist/src/architecture/baseline.d.ts.map +1 -0
- package/dist/src/architecture/baseline.js +124 -0
- package/dist/src/architecture/baseline.js.map +1 -0
- package/dist/src/architecture/build-vs-buy.d.ts +5 -0
- package/dist/src/architecture/build-vs-buy.d.ts.map +1 -0
- package/dist/src/architecture/build-vs-buy.js +132 -0
- package/dist/src/architecture/build-vs-buy.js.map +1 -0
- package/dist/src/architecture/challenge.d.ts +4 -0
- package/dist/src/architecture/challenge.d.ts.map +1 -0
- package/dist/src/architecture/challenge.js +59 -0
- package/dist/src/architecture/challenge.js.map +1 -0
- package/dist/src/architecture/profile.d.ts +9 -0
- package/dist/src/architecture/profile.d.ts.map +1 -0
- package/dist/src/architecture/profile.js +293 -0
- package/dist/src/architecture/profile.js.map +1 -0
- package/dist/src/architecture/report.d.ts +3 -0
- package/dist/src/architecture/report.d.ts.map +1 -0
- package/dist/src/architecture/report.js +46 -0
- package/dist/src/architecture/report.js.map +1 -0
- package/dist/src/architecture/shared.d.ts +16 -0
- package/dist/src/architecture/shared.d.ts.map +1 -0
- package/dist/src/architecture/shared.js +41 -0
- package/dist/src/architecture/shared.js.map +1 -0
- package/dist/src/architecture/state.d.ts +3 -0
- package/dist/src/architecture/state.d.ts.map +1 -0
- package/dist/src/architecture/state.js +60 -0
- package/dist/src/architecture/state.js.map +1 -0
- package/dist/src/architecture.d.ts +9 -0
- package/dist/src/architecture.d.ts.map +1 -0
- package/dist/src/architecture.js +9 -0
- package/dist/src/architecture.js.map +1 -0
- package/dist/src/cli/bootstrap.d.ts +9 -0
- package/dist/src/cli/bootstrap.d.ts.map +1 -0
- package/dist/src/cli/bootstrap.js +113 -0
- package/dist/src/cli/bootstrap.js.map +1 -0
- package/dist/src/cli/command-tree.d.ts +29 -0
- package/dist/src/cli/command-tree.d.ts.map +1 -0
- package/dist/src/cli/command-tree.js +219 -0
- package/dist/src/cli/command-tree.js.map +1 -0
- package/dist/src/cli/commands/acceptance/approval.d.ts +32 -0
- package/dist/src/cli/commands/acceptance/approval.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance/approval.js +42 -0
- package/dist/src/cli/commands/acceptance/approval.js.map +1 -0
- package/dist/src/cli/commands/acceptance/brainstorm.d.ts +47 -0
- package/dist/src/cli/commands/acceptance/brainstorm.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance/brainstorm.js +104 -0
- package/dist/src/cli/commands/acceptance/brainstorm.js.map +1 -0
- package/dist/src/cli/commands/acceptance/criterion.d.ts +51 -0
- package/dist/src/cli/commands/acceptance/criterion.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance/criterion.js +103 -0
- package/dist/src/cli/commands/acceptance/criterion.js.map +1 -0
- package/dist/src/cli/commands/acceptance/draft.d.ts +43 -0
- package/dist/src/cli/commands/acceptance/draft.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance/draft.js +118 -0
- package/dist/src/cli/commands/acceptance/draft.js.map +1 -0
- package/dist/src/cli/commands/acceptance/runtime-status.d.ts +102 -0
- package/dist/src/cli/commands/acceptance/runtime-status.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance/runtime-status.js +113 -0
- package/dist/src/cli/commands/acceptance/runtime-status.js.map +1 -0
- package/dist/src/cli/commands/acceptance/shared.d.ts +18 -0
- package/dist/src/cli/commands/acceptance/shared.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance/shared.js +29 -0
- package/dist/src/cli/commands/acceptance/shared.js.map +1 -0
- package/dist/src/cli/commands/acceptance.d.ts +6 -0
- package/dist/src/cli/commands/acceptance.d.ts.map +1 -0
- package/dist/src/cli/commands/acceptance.js +6 -0
- package/dist/src/cli/commands/acceptance.js.map +1 -0
- package/dist/src/cli/commands/architecture/baseline.d.ts +36 -0
- package/dist/src/cli/commands/architecture/baseline.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/baseline.js +84 -0
- package/dist/src/cli/commands/architecture/baseline.js.map +1 -0
- package/dist/src/cli/commands/architecture/build-vs-buy.d.ts +74 -0
- package/dist/src/cli/commands/architecture/build-vs-buy.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/build-vs-buy.js +132 -0
- package/dist/src/cli/commands/architecture/build-vs-buy.js.map +1 -0
- package/dist/src/cli/commands/architecture/challenge.d.ts +35 -0
- package/dist/src/cli/commands/architecture/challenge.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/challenge.js +90 -0
- package/dist/src/cli/commands/architecture/challenge.js.map +1 -0
- package/dist/src/cli/commands/architecture/profile.d.ts +31 -0
- package/dist/src/cli/commands/architecture/profile.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/profile.js +61 -0
- package/dist/src/cli/commands/architecture/profile.js.map +1 -0
- package/dist/src/cli/commands/architecture/profiles.d.ts +14 -0
- package/dist/src/cli/commands/architecture/profiles.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/profiles.js +27 -0
- package/dist/src/cli/commands/architecture/profiles.js.map +1 -0
- package/dist/src/cli/commands/architecture/shared.d.ts +13 -0
- package/dist/src/cli/commands/architecture/shared.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/shared.js +18 -0
- package/dist/src/cli/commands/architecture/shared.js.map +1 -0
- package/dist/src/cli/commands/architecture/show.d.ts +18 -0
- package/dist/src/cli/commands/architecture/show.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture/show.js +32 -0
- package/dist/src/cli/commands/architecture/show.js.map +1 -0
- package/dist/src/cli/commands/architecture.d.ts +7 -0
- package/dist/src/cli/commands/architecture.d.ts.map +1 -0
- package/dist/src/cli/commands/architecture.js +7 -0
- package/dist/src/cli/commands/architecture.js.map +1 -0
- package/dist/src/cli/commands/bootstrap.d.ts +25 -0
- package/dist/src/cli/commands/bootstrap.d.ts.map +1 -0
- package/dist/src/cli/commands/bootstrap.js +37 -0
- package/dist/src/cli/commands/bootstrap.js.map +1 -0
- package/dist/src/cli/commands/changes.d.ts +14 -0
- package/dist/src/cli/commands/changes.d.ts.map +1 -0
- package/dist/src/cli/commands/changes.js +69 -0
- package/dist/src/cli/commands/changes.js.map +1 -0
- package/dist/src/cli/commands/check.d.ts +27 -0
- package/dist/src/cli/commands/check.d.ts.map +1 -0
- package/dist/src/cli/commands/check.js +119 -0
- package/dist/src/cli/commands/check.js.map +1 -0
- package/dist/src/cli/commands/context.d.ts +22 -0
- package/dist/src/cli/commands/context.d.ts.map +1 -0
- package/dist/src/cli/commands/context.js +53 -0
- package/dist/src/cli/commands/context.js.map +1 -0
- package/dist/src/cli/commands/doctor.d.ts +14 -0
- package/dist/src/cli/commands/doctor.d.ts.map +1 -0
- package/dist/src/cli/commands/doctor.js +36 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/evidence/add.d.ts +82 -0
- package/dist/src/cli/commands/evidence/add.d.ts.map +1 -0
- package/dist/src/cli/commands/evidence/add.js +112 -0
- package/dist/src/cli/commands/evidence/add.js.map +1 -0
- package/dist/src/cli/commands/evidence/source-parsing.d.ts +6 -0
- package/dist/src/cli/commands/evidence/source-parsing.d.ts.map +1 -0
- package/dist/src/cli/commands/evidence/source-parsing.js +70 -0
- package/dist/src/cli/commands/evidence/source-parsing.js.map +1 -0
- package/dist/src/cli/commands/evidence.d.ts +2 -0
- package/dist/src/cli/commands/evidence.d.ts.map +1 -0
- package/dist/src/cli/commands/evidence.js +2 -0
- package/dist/src/cli/commands/evidence.js.map +1 -0
- package/dist/src/cli/commands/install.d.ts +51 -0
- package/dist/src/cli/commands/install.d.ts.map +1 -0
- package/dist/src/cli/commands/install.js +80 -0
- package/dist/src/cli/commands/install.js.map +1 -0
- package/dist/src/cli/commands/list.d.ts +14 -0
- package/dist/src/cli/commands/list.d.ts.map +1 -0
- package/dist/src/cli/commands/list.js +40 -0
- package/dist/src/cli/commands/list.js.map +1 -0
- package/dist/src/cli/commands/profile/add.d.ts +60 -0
- package/dist/src/cli/commands/profile/add.d.ts.map +1 -0
- package/dist/src/cli/commands/profile/add.js +74 -0
- package/dist/src/cli/commands/profile/add.js.map +1 -0
- package/dist/src/cli/commands/profile/check.d.ts +32 -0
- package/dist/src/cli/commands/profile/check.d.ts.map +1 -0
- package/dist/src/cli/commands/profile/check.js +43 -0
- package/dist/src/cli/commands/profile/check.js.map +1 -0
- package/dist/src/cli/commands/profile/evidence.d.ts +45 -0
- package/dist/src/cli/commands/profile/evidence.d.ts.map +1 -0
- package/dist/src/cli/commands/profile/evidence.js +60 -0
- package/dist/src/cli/commands/profile/evidence.js.map +1 -0
- package/dist/src/cli/commands/profile/shared.d.ts +15 -0
- package/dist/src/cli/commands/profile/shared.d.ts.map +1 -0
- package/dist/src/cli/commands/profile/shared.js +29 -0
- package/dist/src/cli/commands/profile/shared.js.map +1 -0
- package/dist/src/cli/commands/profile/show.d.ts +27 -0
- package/dist/src/cli/commands/profile/show.d.ts.map +1 -0
- package/dist/src/cli/commands/profile/show.js +28 -0
- package/dist/src/cli/commands/profile/show.js.map +1 -0
- package/dist/src/cli/commands/profile.d.ts +5 -0
- package/dist/src/cli/commands/profile.d.ts.map +1 -0
- package/dist/src/cli/commands/profile.js +5 -0
- package/dist/src/cli/commands/profile.js.map +1 -0
- package/dist/src/cli/commands/reporting.d.ts +61 -0
- package/dist/src/cli/commands/reporting.d.ts.map +1 -0
- package/dist/src/cli/commands/reporting.js +106 -0
- package/dist/src/cli/commands/reporting.js.map +1 -0
- package/dist/src/cli/commands/uninstall.d.ts +44 -0
- package/dist/src/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/src/cli/commands/uninstall.js +69 -0
- package/dist/src/cli/commands/uninstall.js.map +1 -0
- package/dist/src/cli/commands/upgrade.d.ts +44 -0
- package/dist/src/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/src/cli/commands/upgrade.js +76 -0
- package/dist/src/cli/commands/upgrade.js.map +1 -0
- package/dist/src/cli/runtime.d.ts +48 -0
- package/dist/src/cli/runtime.d.ts.map +1 -0
- package/dist/src/cli/runtime.js +171 -0
- package/dist/src/cli/runtime.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +41 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/core/contract.d.ts +9 -0
- package/dist/src/core/contract.d.ts.map +1 -0
- package/dist/src/core/contract.js +356 -0
- package/dist/src/core/contract.js.map +1 -0
- package/dist/src/core/evidence.d.ts +17 -0
- package/dist/src/core/evidence.d.ts.map +1 -0
- package/dist/src/core/evidence.js +338 -0
- package/dist/src/core/evidence.js.map +1 -0
- package/dist/src/core/profile.d.ts +9 -0
- package/dist/src/core/profile.d.ts.map +1 -0
- package/dist/src/core/profile.js +106 -0
- package/dist/src/core/profile.js.map +1 -0
- package/dist/src/core/report.d.ts +6 -0
- package/dist/src/core/report.d.ts.map +1 -0
- package/dist/src/core/report.js +222 -0
- package/dist/src/core/report.js.map +1 -0
- package/dist/src/core/shared.d.ts +21 -0
- package/dist/src/core/shared.d.ts.map +1 -0
- package/dist/src/core/shared.js +80 -0
- package/dist/src/core/shared.js.map +1 -0
- package/dist/src/core.d.ts +6 -0
- package/dist/src/core.d.ts.map +1 -0
- package/dist/src/core.js +6 -0
- package/dist/src/core.js.map +1 -0
- package/dist/src/lifecycle/bootstrap.d.ts +5 -0
- package/dist/src/lifecycle/bootstrap.d.ts.map +1 -0
- package/dist/src/lifecycle/bootstrap.js +47 -0
- package/dist/src/lifecycle/bootstrap.js.map +1 -0
- package/dist/src/lifecycle/context-export.d.ts +6 -0
- package/dist/src/lifecycle/context-export.d.ts.map +1 -0
- package/dist/src/lifecycle/context-export.js +40 -0
- package/dist/src/lifecycle/context-export.js.map +1 -0
- package/dist/src/lifecycle/doctor/active-goals.d.ts +7 -0
- package/dist/src/lifecycle/doctor/active-goals.d.ts.map +1 -0
- package/dist/src/lifecycle/doctor/active-goals.js +57 -0
- package/dist/src/lifecycle/doctor/active-goals.js.map +1 -0
- package/dist/src/lifecycle/doctor/manifest-health.d.ts +9 -0
- package/dist/src/lifecycle/doctor/manifest-health.d.ts.map +1 -0
- package/dist/src/lifecycle/doctor/manifest-health.js +49 -0
- package/dist/src/lifecycle/doctor/manifest-health.js.map +1 -0
- package/dist/src/lifecycle/doctor/plugin-health.d.ts +7 -0
- package/dist/src/lifecycle/doctor/plugin-health.d.ts.map +1 -0
- package/dist/src/lifecycle/doctor/plugin-health.js +23 -0
- package/dist/src/lifecycle/doctor/plugin-health.js.map +1 -0
- package/dist/src/lifecycle/doctor/project-health.d.ts +4 -0
- package/dist/src/lifecycle/doctor/project-health.d.ts.map +1 -0
- package/dist/src/lifecycle/doctor/project-health.js +43 -0
- package/dist/src/lifecycle/doctor/project-health.js.map +1 -0
- package/dist/src/lifecycle/doctor/shared.d.ts +6 -0
- package/dist/src/lifecycle/doctor/shared.d.ts.map +1 -0
- package/dist/src/lifecycle/doctor/shared.js +40 -0
- package/dist/src/lifecycle/doctor/shared.js.map +1 -0
- package/dist/src/lifecycle/doctor.d.ts +3 -0
- package/dist/src/lifecycle/doctor.d.ts.map +1 -0
- package/dist/src/lifecycle/doctor.js +29 -0
- package/dist/src/lifecycle/doctor.js.map +1 -0
- package/dist/src/lifecycle/install.d.ts +9 -0
- package/dist/src/lifecycle/install.d.ts.map +1 -0
- package/dist/src/lifecycle/install.js +28 -0
- package/dist/src/lifecycle/install.js.map +1 -0
- package/dist/src/lifecycle/managed-files.d.ts +20 -0
- package/dist/src/lifecycle/managed-files.d.ts.map +1 -0
- package/dist/src/lifecycle/managed-files.js +78 -0
- package/dist/src/lifecycle/managed-files.js.map +1 -0
- package/dist/src/lifecycle/manifest.d.ts +13 -0
- package/dist/src/lifecycle/manifest.d.ts.map +1 -0
- package/dist/src/lifecycle/manifest.js +100 -0
- package/dist/src/lifecycle/manifest.js.map +1 -0
- package/dist/src/lifecycle/plans.d.ts +16 -0
- package/dist/src/lifecycle/plans.d.ts.map +1 -0
- package/dist/src/lifecycle/plans.js +169 -0
- package/dist/src/lifecycle/plans.js.map +1 -0
- package/dist/src/lifecycle/profile-checks.d.ts +4 -0
- package/dist/src/lifecycle/profile-checks.d.ts.map +1 -0
- package/dist/src/lifecycle/profile-checks.js +119 -0
- package/dist/src/lifecycle/profile-checks.js.map +1 -0
- package/dist/src/lifecycle/shared.d.ts +10 -0
- package/dist/src/lifecycle/shared.d.ts.map +1 -0
- package/dist/src/lifecycle/shared.js +58 -0
- package/dist/src/lifecycle/shared.js.map +1 -0
- package/dist/src/lifecycle/uninstall.d.ts +6 -0
- package/dist/src/lifecycle/uninstall.d.ts.map +1 -0
- package/dist/src/lifecycle/uninstall.js +47 -0
- package/dist/src/lifecycle/uninstall.js.map +1 -0
- package/dist/src/lifecycle/upgrade.d.ts +6 -0
- package/dist/src/lifecycle/upgrade.d.ts.map +1 -0
- package/dist/src/lifecycle/upgrade.js +134 -0
- package/dist/src/lifecycle/upgrade.js.map +1 -0
- package/dist/src/lifecycle.d.ts +10 -0
- package/dist/src/lifecycle.d.ts.map +1 -0
- package/dist/src/lifecycle.js +10 -0
- package/dist/src/lifecycle.js.map +1 -0
- package/dist/src/package-root.d.ts +3 -0
- package/dist/src/package-root.d.ts.map +1 -0
- package/dist/src/package-root.js +17 -0
- package/dist/src/package-root.js.map +1 -0
- package/dist/src/plugin.d.ts +3 -0
- package/dist/src/plugin.d.ts.map +1 -0
- package/dist/src/plugin.js +63 -0
- package/dist/src/plugin.js.map +1 -0
- package/dist/src/skills.d.ts +11 -0
- package/dist/src/skills.d.ts.map +1 -0
- package/dist/src/skills.js +60 -0
- package/dist/src/skills.js.map +1 -0
- package/dist/src/types.d.ts +686 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/validation.d.ts +21 -0
- package/dist/src/validation.d.ts.map +1 -0
- package/dist/src/validation.js +52 -0
- package/dist/src/validation.js.map +1 -0
- package/examples/opennori-self.json +99 -18
- package/package.json +28 -6
- package/plugins/opennori/.codex-plugin/plugin.json +39 -0
- package/plugins/opennori/skills/nori/SKILL.md +29 -0
- package/plugins/opennori/skills/nori-acceptance/SKILL.md +23 -0
- package/plugins/opennori/skills/nori-architecture-apply/SKILL.md +19 -0
- package/plugins/opennori/skills/nori-architecture-brainstorm/SKILL.md +23 -0
- package/plugins/opennori/skills/nori-architecture-challenge/SKILL.md +17 -0
- package/plugins/opennori/skills/nori-build-vs-buy/SKILL.md +16 -0
- package/plugins/opennori/skills/nori-capability-profile/SKILL.md +17 -0
- package/plugins/opennori/skills/nori-evidence/SKILL.md +18 -0
- package/plugins/opennori/skills/nori-project-health/SKILL.md +35 -0
- package/plugins/opennori/skills/nori-reporting/SKILL.md +22 -0
- package/schemas/architecture-baseline.schema.json +59 -0
- package/schemas/build-vs-buy.schema.json +39 -0
- package/schemas/evidence-payload.schema.json +71 -0
- package/schemas/manifest.schema.json +91 -0
- package/src/acceptance.ts +369 -0
- package/src/architecture/agent-surface.ts +78 -0
- package/src/architecture/baseline.ts +156 -0
- package/src/architecture/build-vs-buy.ts +142 -0
- package/src/architecture/challenge.ts +62 -0
- package/src/architecture/profile.ts +301 -0
- package/src/architecture/report.ts +48 -0
- package/src/architecture/shared.ts +50 -0
- package/src/architecture/state.ts +63 -0
- package/src/architecture.ts +40 -0
- package/src/cli/bootstrap.ts +156 -0
- package/src/cli/command-tree.ts +270 -0
- package/src/cli/commands/acceptance/approval.ts +49 -0
- package/src/cli/commands/acceptance/brainstorm.ts +121 -0
- package/src/cli/commands/acceptance/criterion.ts +114 -0
- package/src/cli/commands/acceptance/draft.ts +143 -0
- package/src/cli/commands/acceptance/runtime-status.ts +131 -0
- package/src/cli/commands/acceptance/shared.ts +38 -0
- package/src/cli/commands/acceptance.ts +30 -0
- package/src/cli/commands/architecture/baseline.ts +94 -0
- package/src/cli/commands/architecture/build-vs-buy.ts +140 -0
- package/src/cli/commands/architecture/challenge.ts +99 -0
- package/src/cli/commands/architecture/profile.ts +72 -0
- package/src/cli/commands/architecture/profiles.ts +28 -0
- package/src/cli/commands/architecture/shared.ts +21 -0
- package/src/cli/commands/architecture/show.ts +33 -0
- package/src/cli/commands/architecture.ts +24 -0
- package/src/cli/commands/bootstrap.ts +44 -0
- package/src/cli/commands/changes.ts +86 -0
- package/src/cli/commands/check.ts +121 -0
- package/src/cli/commands/context.ts +59 -0
- package/src/cli/commands/doctor.ts +37 -0
- package/src/cli/commands/evidence/add.ts +119 -0
- package/src/cli/commands/evidence/source-parsing.ts +72 -0
- package/src/cli/commands/evidence.ts +4 -0
- package/src/cli/commands/install.ts +106 -0
- package/src/cli/commands/list.ts +41 -0
- package/src/cli/commands/profile/add.ts +86 -0
- package/src/cli/commands/profile/check.ts +52 -0
- package/src/cli/commands/profile/evidence.ts +69 -0
- package/src/cli/commands/profile/shared.ts +35 -0
- package/src/cli/commands/profile/show.ts +35 -0
- package/src/cli/commands/profile.ts +16 -0
- package/src/cli/commands/reporting.ts +119 -0
- package/src/cli/commands/uninstall.ts +90 -0
- package/src/cli/commands/upgrade.ts +110 -0
- package/src/cli/runtime.ts +200 -0
- package/src/cli.ts +51 -0
- package/src/core/contract.ts +392 -0
- package/src/core/evidence.ts +360 -0
- package/src/core/profile.ts +113 -0
- package/src/core/report.ts +242 -0
- package/src/core/shared.ts +89 -0
- package/src/core.ts +5 -0
- package/src/lifecycle/bootstrap.ts +55 -0
- package/src/lifecycle/context-export.ts +51 -0
- package/src/lifecycle/doctor/active-goals.ts +73 -0
- package/src/lifecycle/doctor/manifest-health.ts +118 -0
- package/src/lifecycle/doctor/plugin-health.ts +60 -0
- package/src/lifecycle/doctor/project-health.ts +108 -0
- package/src/lifecycle/doctor/shared.ts +49 -0
- package/src/lifecycle/doctor.ts +41 -0
- package/src/lifecycle/install.ts +51 -0
- package/src/lifecycle/managed-files.ts +96 -0
- package/src/lifecycle/manifest.ts +123 -0
- package/src/lifecycle/plans.ts +176 -0
- package/src/lifecycle/profile-checks.ts +121 -0
- package/src/lifecycle/shared.ts +60 -0
- package/src/lifecycle/uninstall.ts +63 -0
- package/src/lifecycle/upgrade.ts +156 -0
- package/src/lifecycle.ts +21 -0
- package/src/package-root.ts +16 -0
- package/src/plugin.ts +76 -0
- package/src/skills.ts +72 -0
- package/src/types.ts +766 -0
- package/src/validation.ts +66 -0
- package/src/cli.js +0 -2422
- package/src/core.js +0 -971
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "opennori",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "OpenNori"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "opennori",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./plugins/opennori"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Productivity"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
package/.opennori/protocol.md
CHANGED
|
@@ -6,6 +6,7 @@ The human-facing surface is acceptance state:
|
|
|
6
6
|
|
|
7
7
|
- goal
|
|
8
8
|
- user acceptance criteria
|
|
9
|
+
- architecture baseline decision
|
|
9
10
|
- current acceptance gap
|
|
10
11
|
- evidence summary
|
|
11
12
|
- final status
|
|
@@ -13,6 +14,10 @@ The human-facing surface is acceptance state:
|
|
|
13
14
|
Implementation plans are allowed inside the agent's private reasoning, but they are not the default
|
|
14
15
|
progress surface and they are not completion evidence.
|
|
15
16
|
|
|
17
|
+
For non-trivial goals, OpenNori also carries an Architecture Baseline. Product AC answers what the
|
|
18
|
+
human user must be able to accept. Architecture Baseline answers what technical architecture the
|
|
19
|
+
agent must follow while producing that outcome. These are reported together but kept separate.
|
|
20
|
+
|
|
16
21
|
## Layered Acceptance Criteria v1
|
|
17
22
|
|
|
18
23
|
OpenNori itself is accepted only when it satisfies user-tool-operation acceptance criteria.
|
|
@@ -63,6 +68,7 @@ The operator layer proves that Codex can actually use OpenNori as the work proto
|
|
|
63
68
|
| AC-O-6 | Codex conversation | Revise an AC after new facts appear | The changed acceptance basis is preserved. | Updated ACs become the basis for `current_gap` and completion; old criteria are not silently reused. |
|
|
64
69
|
| AC-O-7 | Codex conversation | Ask OpenNori to brainstorm a fuzzy idea | The user sees selectable acceptance directions without remembering CLI syntax. | Brainstorm candidates describe user value, observable acceptance direction, and risk; they are not treated as a contract or completion evidence. |
|
|
65
70
|
| AC-O-8 | Codex conversation | State required Skills, preferred stacks, avoided tools, or execution constraints | The agent records a Nori Profile without making the user remember CLI syntax. | Must/avoid profile items are shown in contract and report; unsatisfied must items or violated avoid items block completion unless waived. |
|
|
71
|
+
| AC-O-9 | Codex conversation | Ask OpenNori to use a good architecture for a non-trivial goal | The user sees Product AC and an Architecture Baseline before implementation starts. | The baseline is not a plan; it names the architecture profile, boundaries, build-vs-buy policy, and challenge rule. |
|
|
66
72
|
|
|
67
73
|
### L3 Productization AC
|
|
68
74
|
|
|
@@ -71,18 +77,22 @@ a durable workflow asset.
|
|
|
71
77
|
|
|
72
78
|
| ID | Tool / entrypoint | User operation | User acceptance criterion | Passing threshold |
|
|
73
79
|
| --- | --- | --- | --- | --- |
|
|
74
|
-
| AC-Z-1 |
|
|
80
|
+
| AC-Z-1 | Codex Plugin / package assets | Install or inspect the OpenNori package | The user's agent can discover focused OpenNori Skills without the user memorizing CLI flags. | `.agents/plugins/marketplace.json` points to `./plugins/opennori`; `plugins/opennori/.codex-plugin/plugin.json` points to package-local `skills/`; the `nori` Skill routes natural-language work through acceptance, evidence, profile, architecture, health, and reporting. |
|
|
75
81
|
| AC-Z-2 | CLI | Run `opennori install` | The user can install OpenNori into a project without unexpected overwrites. | Install shows created/skipped assets; existing user content is not overwritten by default. |
|
|
76
82
|
| AC-Z-3 | Git / PR diff | Review the agent's changes | The user can separate acceptance evidence changes from implementation noise. | Summary defaults to AC status changes, evidence changes, and user impact. |
|
|
77
83
|
| AC-Z-4 | CLI | Run `opennori list` and select a goal | The user can see multiple active goals and choose one explicitly. | Multiple active goals are listed with status, gap, and paths; `--goal` selects the target. |
|
|
78
84
|
| AC-Z-5 | CLI | Archive a completed or blocked goal | The user removes it from active work while preserving evidence and report. | Active no longer lists the goal; contract, ledger, and report remain recoverable. |
|
|
79
85
|
| AC-Z-6 | Project file browser | Inspect the project after running OpenNori | The user sees OpenNori-owned state under `.opennori/` instead of a generic project `process/` directory. | Install, draft, brainstorm, report, and archive write OpenNori state under `.opennori/` by default. |
|
|
80
|
-
| AC-Z-7 | CLI / project file browser | Run `opennori install` | The user can inspect project OpenNori registration and judge version, managed entries, active goals, Skill
|
|
81
|
-
| AC-Z-8 | CLI | Run `opennori doctor` | The user can judge whether the project is `ready`, `needs-action`, or `broken`, and see the next recovery action. | Doctor checks `.opennori` structure, manifest consistency, active goal recoverability,
|
|
86
|
+
| AC-Z-7 | CLI / project file browser | Run `opennori install` | The user can inspect project OpenNori registration and judge version, managed entries, active goals, Plugin Skill availability, and protocol capabilities. | Install output uses create, skip, overwrite, or update semantics; `.opennori/manifest.json` records version, managed files, active goals, Plugin state, architecture state, and capabilities. |
|
|
87
|
+
| AC-Z-8 | CLI | Run `opennori doctor` | The user can judge whether the project is `ready`, `needs-action`, or `broken`, and see the next recovery action. | Doctor checks `.opennori` structure, manifest consistency, active goal recoverability, packaged Plugin Skills, CLI runtime, and recovery suggestions. |
|
|
82
88
|
| AC-Z-9 | CLI | Preview install with `opennori install --dry-run` | The user can judge what OpenNori would create, skip, update, or overwrite before writing to the project. | Install plan lists action, kind, managed status, write intent, destructive flag, and reason; dry-run reports zero actual writes. |
|
|
83
89
|
| AC-Z-10 | CLI | Apply force install | The user must preview and explicitly confirm destructive install actions before files are overwritten. | Real `opennori install --force` fails without confirmation; dry-run previews destructive overwrites; confirmed force install may write. |
|
|
84
90
|
| AC-Z-11 | CLI | Preview and apply uninstall | The user can uninstall OpenNori entry assets without losing acceptance state by default. | Uninstall plan shows removals and preserved state; real uninstall requires confirmation; `.opennori` state is deleted only with `--include-state --confirm`. |
|
|
85
|
-
| AC-Z-12 |
|
|
91
|
+
| AC-Z-12 | Codex Plugin / Codex Skills | Use OpenNori Plugin Skills | The agent gets focused OpenNori Skills for acceptance, evidence, Nori Profile, architecture, project health, and reporting while the user keeps using natural language. | The npm package ships `.agents/plugins/marketplace.json`, `plugins/opennori/.codex-plugin/plugin.json`, and `plugins/opennori/skills/nori*/SKILL.md`; install does not copy Skills into the project; manifest records `plugin`; doctor detects missing packaged Plugin Skills. |
|
|
92
|
+
| AC-Z-13 | CLI / project file browser | Establish an Architecture Baseline | The user can see what architecture the agent must follow while implementing Product AC. | `.opennori/architecture/baseline.json`, `.opennori/architecture/baseline.md`, and `.opennori/agent-guide.md` expose the baseline to agents and reviewers. |
|
|
93
|
+
| AC-Z-14 | CLI / project file browser | Add a project Architecture Profile | The user can extend built-in profiles with a reviewed project profile. | `opennori architecture profile --from <profile.json>` writes `.opennori/architecture/profiles/<id>.json`; `architecture profiles` lists it before built-ins. |
|
|
94
|
+
| AC-Z-15 | CLI / report | Challenge a baseline | The user can review evidence before an agent changes architecture. | `opennori architecture challenge` records current baseline, conflict evidence, recommendation, and user confirmation requirement. |
|
|
95
|
+
| AC-Z-16 | CLI / report | Record build-vs-buy decisions | The user can see whether existing dependencies, standard libraries, official SDKs, and mature OSS were checked before self-building infrastructure. | `opennori architecture build-vs-buy` records the decision under `.opennori/architecture/decisions/` and status/report summarize it. |
|
|
86
96
|
|
|
87
97
|
## Required Artifact Pair
|
|
88
98
|
|
|
@@ -92,6 +102,7 @@ OpenNori writes its project-local state under `.opennori/`.
|
|
|
92
102
|
.opennori/
|
|
93
103
|
manifest.json
|
|
94
104
|
protocol.md
|
|
105
|
+
agent-guide.md
|
|
95
106
|
active/
|
|
96
107
|
<goal>.acceptance.md
|
|
97
108
|
<goal>.evidence.json
|
|
@@ -99,6 +110,13 @@ OpenNori writes its project-local state under `.opennori/`.
|
|
|
99
110
|
blocked/
|
|
100
111
|
reports/
|
|
101
112
|
brainstorms/
|
|
113
|
+
architecture/
|
|
114
|
+
baseline.json
|
|
115
|
+
baseline.md
|
|
116
|
+
profiles/
|
|
117
|
+
challenges/
|
|
118
|
+
decisions/
|
|
119
|
+
evidence/
|
|
102
120
|
```
|
|
103
121
|
|
|
104
122
|
Each active goal has:
|
|
@@ -112,8 +130,8 @@ Each active goal has:
|
|
|
112
130
|
- OpenNori package version
|
|
113
131
|
- managed `.opennori` files and directories
|
|
114
132
|
- active goals recoverable from `.opennori/active`
|
|
115
|
-
-
|
|
116
|
-
-
|
|
133
|
+
- OpenNori Plugin and package Skill asset state
|
|
134
|
+
- Architecture Baseline, profile, challenge, build-vs-buy, and agent-readable surface state
|
|
117
135
|
- protocol capabilities exposed by this CLI
|
|
118
136
|
|
|
119
137
|
`opennori install` creates or refreshes the manifest. State-changing OpenNori commands refresh it when
|
|
@@ -134,25 +152,41 @@ Real `opennori install --force` can overwrite OpenNori-managed files, so it requ
|
|
|
134
152
|
Run `opennori install --dry-run --force` first to inspect destructive actions, then rerun with
|
|
135
153
|
`--confirm` only if those writes are acceptable.
|
|
136
154
|
|
|
137
|
-
`opennori uninstall --dry-run` returns an uninstall plan. By default it removes
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
155
|
+
`opennori uninstall --dry-run` returns an uninstall plan. By default it removes the manifest while
|
|
156
|
+
preserving Nori Contracts, evidence records, reports, archives, brainstorms, protocol, guide, and
|
|
157
|
+
architecture state. Real uninstall requires `--confirm`. Deleting the whole `.opennori` state
|
|
158
|
+
directory requires both `--include-state` and `--confirm`.
|
|
141
159
|
|
|
142
|
-
##
|
|
160
|
+
## OpenNori Plugin Skills
|
|
143
161
|
|
|
144
|
-
OpenNori exposes
|
|
145
|
-
the root `nori` Skill routes natural-language requests to focused Skills:
|
|
162
|
+
OpenNori exposes Codex Skills through its Plugin and package assets. The user should not need to
|
|
163
|
+
remember these Skill names; the root `nori` Skill routes natural-language requests to focused Skills:
|
|
146
164
|
|
|
147
165
|
- `nori`: root router for OpenNori turns
|
|
148
166
|
- `nori-acceptance`: discover AC gaps, brainstorm, draft, approve, and revise human-facing ACs
|
|
149
167
|
- `nori-evidence`: record reviewable evidence without forcing fixed adapters
|
|
150
168
|
- `nori-capability-profile`: record required Skills, preferred stacks, avoided tools, and install policy
|
|
151
|
-
- `nori-
|
|
169
|
+
- `nori-architecture-brainstorm`: select or create an Architecture Baseline before non-trivial implementation
|
|
170
|
+
- `nori-architecture-apply`: read and apply the confirmed baseline before implementation
|
|
171
|
+
- `nori-architecture-challenge`: raise evidence-backed requests to revise a baseline
|
|
172
|
+
- `nori-build-vs-buy`: record dependency/library/self-build decisions before infrastructure work
|
|
173
|
+
- `nori-project-health`: install, upgrade, uninstall, doctor, manifest, Plugin health, and project recoverability
|
|
152
174
|
- `nori-reporting`: status, report, current gap, user intervention, and changes
|
|
153
175
|
|
|
154
|
-
|
|
155
|
-
|
|
176
|
+
The package ships `.agents/plugins/marketplace.json` pointing to `./plugins/opennori`, where
|
|
177
|
+
`plugins/opennori/.codex-plugin/plugin.json` declares `skills: "./skills/"`. `opennori install`
|
|
178
|
+
writes project state under `.opennori/`; it does not copy OpenNori Skills into the user's project.
|
|
179
|
+
The manifest records `plugin` state, and `opennori doctor` checks whether packaged Plugin Skills are
|
|
180
|
+
present and whether the manifest Plugin state is stale.
|
|
181
|
+
|
|
182
|
+
When upgrading an existing OpenNori project, upgrade entry assets first, then run `opennori check`.
|
|
183
|
+
`check` validates active Nori Contracts, reports `acceptance_quality` warnings for vague ACs
|
|
184
|
+
such as "modify profile fields" or "show an error", and reports `architecture_check` warnings when
|
|
185
|
+
the active goal has no confirmed Architecture Baseline, stale agent-readable surface, or unresolved
|
|
186
|
+
Architecture Challenges. It also reports `evidence_health` warnings when a complete-looking goal
|
|
187
|
+
relies on stale, broad, source-free, or non-reviewable evidence. It does not rewrite existing
|
|
188
|
+
contracts, evidence, reports, archives, brainstorms, or baselines. The user decides whether to
|
|
189
|
+
revise affected criteria, architecture, or evidence.
|
|
156
190
|
|
|
157
191
|
## Nori Profile
|
|
158
192
|
|
|
@@ -181,6 +215,63 @@ Completion rules:
|
|
|
181
215
|
Agents translate the user's natural-language preferences into profile records. Users should not
|
|
182
216
|
need to remember `opennori profile` commands.
|
|
183
217
|
|
|
218
|
+
## Architecture Baseline
|
|
219
|
+
|
|
220
|
+
Architecture Baseline is separate from Product AC. It is not a plan, phase list, task list, or
|
|
221
|
+
implementation checklist. It is sticky architecture guidance for agents and maintainers:
|
|
222
|
+
|
|
223
|
+
- selected Architecture Profile
|
|
224
|
+
- goal it applies to
|
|
225
|
+
- architecture principles and boundaries
|
|
226
|
+
- Architecture Checks for maintainers or agents
|
|
227
|
+
- preferred libraries or technologies
|
|
228
|
+
- avoid policy
|
|
229
|
+
- build-vs-buy policy
|
|
230
|
+
- challenge policy
|
|
231
|
+
- agent-readable surfaces
|
|
232
|
+
|
|
233
|
+
OpenNori includes built-in profiles and supports project profiles under:
|
|
234
|
+
|
|
235
|
+
```text
|
|
236
|
+
.opennori/architecture/profiles/<profile-id>.json
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Use `opennori architecture profiles --root <project> --json` to list built-ins and project profiles.
|
|
240
|
+
The output is intentionally reviewable before baseline confirmation: each profile includes suitable
|
|
241
|
+
use cases, reference sources, architecture principles, checks, preferred libraries, avoid
|
|
242
|
+
boundaries, validation issues, and build-vs-buy policy.
|
|
243
|
+
Use `opennori architecture profile --root <project> --from <profile.json> --json` to add a reviewed
|
|
244
|
+
project profile. Existing profiles are not overwritten unless the agent uses `--force` after review.
|
|
245
|
+
|
|
246
|
+
Use `opennori architecture baseline --root <project> --goal "<goal>" --profile <profile-id> --json`
|
|
247
|
+
to preview a baseline. Preview has no side effect. After the user accepts it, rerun with `--confirm`.
|
|
248
|
+
|
|
249
|
+
Once confirmed, the baseline is written to:
|
|
250
|
+
|
|
251
|
+
- `.opennori/architecture/baseline.json`
|
|
252
|
+
- `.opennori/architecture/baseline.md`
|
|
253
|
+
- `.opennori/agent-guide.md`
|
|
254
|
+
|
|
255
|
+
Agent route files such as `AGENTS.md` or `CLAUDE.md` should point new sessions to these surfaces.
|
|
256
|
+
`opennori doctor` checks that the baseline exists when an active goal requires it, that the schema is
|
|
257
|
+
valid, and that at least one agent route references `.opennori/architecture/baseline.md`.
|
|
258
|
+
|
|
259
|
+
If project evidence conflicts with a confirmed baseline, the agent must create an Architecture
|
|
260
|
+
Challenge instead of silently changing stack, dependency policy, directory boundaries, state model,
|
|
261
|
+
or project architecture:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
opennori architecture challenge --root <project> --summary "<conflict>" --evidence "<evidence>" --recommendation "<change>" --json
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Build-vs-buy decisions are first-class architecture evidence. Before self-building infrastructure,
|
|
268
|
+
the agent checks current project dependencies, standard libraries, official SDKs, mature
|
|
269
|
+
open-source libraries, and documented reference projects:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
opennori architecture build-vs-buy --root <project> --area "<area>" --need "<need>" --recommendation <reuse|buy|self-build> --summary "<decision>" --json
|
|
273
|
+
```
|
|
274
|
+
|
|
184
275
|
## Status Model
|
|
185
276
|
|
|
186
277
|
- `unknown`: no user-understandable evidence exists
|
|
@@ -189,7 +280,9 @@ need to remember `opennori profile` commands.
|
|
|
189
280
|
- `blocked`: user decision or external condition required
|
|
190
281
|
- `waived`: user explicitly accepts the unmet criterion with a reason
|
|
191
282
|
|
|
192
|
-
The workflow is complete only when every required criterion is `passing` or `waived`.
|
|
283
|
+
The workflow ledger is complete only when every required criterion is `passing` or `waived`.
|
|
284
|
+
The user-facing completion answer is not confidently complete while `evidence_health` has review
|
|
285
|
+
findings, even if the ledger status is already `complete`.
|
|
193
286
|
|
|
194
287
|
## Risk Gate
|
|
195
288
|
|
|
@@ -234,6 +327,9 @@ When the agent submits evidence, the user-facing record should explain:
|
|
|
234
327
|
|
|
235
328
|
The shape is intentionally open. OpenNori should preserve arbitrary source metadata instead of forcing
|
|
236
329
|
all evidence through a narrow adapter taxonomy.
|
|
330
|
+
`evidence_health` audits that reviewability surface without forcing an adapter taxonomy: it warns
|
|
331
|
+
about missing sources, missing reviewability, missing limitations, stale timestamps, and broad batch
|
|
332
|
+
summaries.
|
|
237
333
|
|
|
238
334
|
## Agent Rule
|
|
239
335
|
|
|
@@ -248,12 +344,18 @@ On every turn:
|
|
|
248
344
|
7. Show the draft acceptance criteria and ask the user to approve or revise them.
|
|
249
345
|
8. After approval, run `opennori approve --root <repo> --summary "<approval>" --json`.
|
|
250
346
|
9. If the user states required Skills, preferred stacks, avoided tools, install policy, or execution constraints, run `opennori profile add --root <repo> ... --json` and keep those items out of the user acceptance criteria.
|
|
251
|
-
10.
|
|
252
|
-
11.
|
|
253
|
-
12.
|
|
254
|
-
13.
|
|
255
|
-
14.
|
|
256
|
-
15.
|
|
347
|
+
10. For non-trivial goals, run `opennori architecture profiles --root <repo> --json`, preview a baseline, show it to the user, and confirm it before implementation.
|
|
348
|
+
11. If the user provides a preferred architecture, add it with `opennori architecture profile --root <repo> --from <profile.json> --json` before previewing the baseline.
|
|
349
|
+
12. Before implementing an acceptance gap, read `.opennori/architecture/baseline.md` and keep Product AC separate from Architecture Checks.
|
|
350
|
+
13. Before self-building infrastructure, record a build-vs-buy decision.
|
|
351
|
+
14. If project evidence conflicts with the baseline, run `opennori architecture challenge`; do not silently replace the baseline.
|
|
352
|
+
15. If the user revises a criterion later, run `opennori criterion update --root <repo> --criterion <id> ... --json`; old evidence for the changed criterion is cleared.
|
|
353
|
+
16. If the user asks to update an existing OpenNori project, run `opennori doctor`, use `opennori upgrade --dry-run/--confirm` for manifest/protocol/guide refreshes, then run `opennori check`; ask the user before revising any existing AC flagged by `acceptance_quality`. If packaged Plugin Skills are missing, reinstall or update the OpenNori package instead of copying Skills into the project.
|
|
354
|
+
17. Run `opennori resume --root <repo>` or `opennori next --root <repo>` to recover the active goal and current acceptance gap from repository files.
|
|
355
|
+
18. Work only to produce evidence for that gap under the confirmed Architecture Baseline.
|
|
356
|
+
19. Add acceptance evidence with `opennori evidence add`; choose any suitable verification method, but record basis, sources, reviewability, confidence, and limitations. Add profile compliance evidence with `opennori profile evidence` when profile items exist.
|
|
357
|
+
15. Run `opennori evaluate`.
|
|
358
|
+
16. Report acceptance state, profile compliance, and evidence, not implementation steps.
|
|
257
359
|
|
|
258
360
|
Useful commands:
|
|
259
361
|
|
|
@@ -269,7 +371,9 @@ Useful commands:
|
|
|
269
371
|
- `opennori profile show --root <repo>`: show profile compliance and blocking items.
|
|
270
372
|
- `opennori list --root <repo>`: list active OpenNori goals.
|
|
271
373
|
- `opennori install --root <repo>`: create or refresh project-local OpenNori assets and manifest.
|
|
374
|
+
- `opennori upgrade --root <repo>`: preview and refresh project-local OpenNori assets without rewriting active contracts or evidence.
|
|
272
375
|
- `opennori doctor --root <repo>`: inspect project OpenNori health and recovery actions.
|
|
376
|
+
- `opennori check --root <repo>`: validate active contract structure, audit active ACs for underspecified acceptance quality, surface Architecture Baseline health for the active goal, and report evidence health.
|
|
273
377
|
- `opennori resume --root <repo>`: recover the active goal, current gap, completion answer, and intervention state.
|
|
274
378
|
- `opennori status --root <repo>`: answer whether the goal is complete and whether the user needs to act.
|
|
275
379
|
- `opennori report --root <repo>`: generate the human acceptance report.
|