witnessd 2.3.3__tar.gz
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.
- witnessd-2.3.3/LICENSE +21 -0
- witnessd-2.3.3/PKG-INFO +9 -0
- witnessd-2.3.3/README.md +541 -0
- witnessd-2.3.3/orro/__init__.py +2 -0
- witnessd-2.3.3/orro/__main__.py +82 -0
- witnessd-2.3.3/setup.cfg +4 -0
- witnessd-2.3.3/setup.py +17 -0
- witnessd-2.3.3/tests/test_000_repo_path.py +15 -0
- witnessd-2.3.3/tests/test_adapter_base.py +133 -0
- witnessd-2.3.3/tests/test_adapter_run.py +1537 -0
- witnessd-2.3.3/tests/test_agy_adapter.py +511 -0
- witnessd-2.3.3/tests/test_agy_live_smoke.py +155 -0
- witnessd-2.3.3/tests/test_budget.py +79 -0
- witnessd-2.3.3/tests/test_canonical.py +19 -0
- witnessd-2.3.3/tests/test_capture_manifest.py +89 -0
- witnessd-2.3.3/tests/test_changeset.py +63 -0
- witnessd-2.3.3/tests/test_claude_critic.py +188 -0
- witnessd-2.3.3/tests/test_claude_live_smoke.py +509 -0
- witnessd-2.3.3/tests/test_claude_opencode_adapter.py +661 -0
- witnessd-2.3.3/tests/test_cli.py +413 -0
- witnessd-2.3.3/tests/test_cli_team.py +590 -0
- witnessd-2.3.3/tests/test_cli_w2.py +124 -0
- witnessd-2.3.3/tests/test_cli_w4.py +187 -0
- witnessd-2.3.3/tests/test_cli_w5.py +219 -0
- witnessd-2.3.3/tests/test_codex_adapter.py +335 -0
- witnessd-2.3.3/tests/test_codex_capability.py +418 -0
- witnessd-2.3.3/tests/test_codex_live_smoke.py +249 -0
- witnessd-2.3.3/tests/test_continuation_gate.py +36 -0
- witnessd-2.3.3/tests/test_depone_replica_conformance.py +190 -0
- witnessd-2.3.3/tests/test_distribution.py +525 -0
- witnessd-2.3.3/tests/test_emitter.py +239 -0
- witnessd-2.3.3/tests/test_emitter_a2.py +112 -0
- witnessd-2.3.3/tests/test_eventlog.py +106 -0
- witnessd-2.3.3/tests/test_evidence_next.py +23 -0
- witnessd-2.3.3/tests/test_faultkit_pause.py +24 -0
- witnessd-2.3.3/tests/test_gemini_adapter.py +172 -0
- witnessd-2.3.3/tests/test_ids.py +20 -0
- witnessd-2.3.3/tests/test_installer.py +71 -0
- witnessd-2.3.3/tests/test_isolation.py +37 -0
- witnessd-2.3.3/tests/test_key_rotation_archive.py +393 -0
- witnessd-2.3.3/tests/test_killswitch.py +99 -0
- witnessd-2.3.3/tests/test_lane_kind.py +18 -0
- witnessd-2.3.3/tests/test_learning.py +97 -0
- witnessd-2.3.3/tests/test_learning_promote.py +133 -0
- witnessd-2.3.3/tests/test_liveness.py +44 -0
- witnessd-2.3.3/tests/test_lock.py +72 -0
- witnessd-2.3.3/tests/test_model_policy.py +127 -0
- witnessd-2.3.3/tests/test_model_policy_live_smoke.py +223 -0
- witnessd-2.3.3/tests/test_model_routing_benchmark.py +269 -0
- witnessd-2.3.3/tests/test_observer_capture.py +59 -0
- witnessd-2.3.3/tests/test_observer_separation.py +35 -0
- witnessd-2.3.3/tests/test_orro_advisory_methods.py +596 -0
- witnessd-2.3.3/tests/test_orro_advisory_provenance.py +777 -0
- witnessd-2.3.3/tests/test_orro_command_surface.py +62 -0
- witnessd-2.3.3/tests/test_orro_engine_contract.py +319 -0
- witnessd-2.3.3/tests/test_orro_packaging.py +307 -0
- witnessd-2.3.3/tests/test_orro_product_reality.py +137 -0
- witnessd-2.3.3/tests/test_orro_public_flow.py +2897 -0
- witnessd-2.3.3/tests/test_orro_public_surface_docs.py +71 -0
- witnessd-2.3.3/tests/test_orro_report.py +443 -0
- witnessd-2.3.3/tests/test_orro_required_role_capability_axes.py +273 -0
- witnessd-2.3.3/tests/test_orro_review.py +472 -0
- witnessd-2.3.3/tests/test_orro_review_live_smoke.py +155 -0
- witnessd-2.3.3/tests/test_orro_runtime_hardening.py +302 -0
- witnessd-2.3.3/tests/test_orro_team_usable_surface.py +791 -0
- witnessd-2.3.3/tests/test_orro_workflow.py +1235 -0
- witnessd-2.3.3/tests/test_orro_workstyle.py +258 -0
- witnessd-2.3.3/tests/test_overt_fields.py +169 -0
- witnessd-2.3.3/tests/test_pause.py +47 -0
- witnessd-2.3.3/tests/test_phase0_adversarial_qa.py +243 -0
- witnessd-2.3.3/tests/test_pilot_cli.py +342 -0
- witnessd-2.3.3/tests/test_pilot_gate_evidence_driver.py +146 -0
- witnessd-2.3.3/tests/test_pilot_verify.py +78 -0
- witnessd-2.3.3/tests/test_planner.py +443 -0
- witnessd-2.3.3/tests/test_preflight.py +85 -0
- witnessd-2.3.3/tests/test_process_identity.py +28 -0
- witnessd-2.3.3/tests/test_revalidate_v2_demo.py +27 -0
- witnessd-2.3.3/tests/test_revalidate_w10.py +105 -0
- witnessd-2.3.3/tests/test_revalidate_w11.py +12 -0
- witnessd-2.3.3/tests/test_revalidate_w6_keyless.py +26 -0
- witnessd-2.3.3/tests/test_role_capability.py +177 -0
- witnessd-2.3.3/tests/test_router.py +87 -0
- witnessd-2.3.3/tests/test_routing_otel.py +37 -0
- witnessd-2.3.3/tests/test_runlog.py +56 -0
- witnessd-2.3.3/tests/test_runner_receipt.py +41 -0
- witnessd-2.3.3/tests/test_runtime_depone_decoupling.py +179 -0
- witnessd-2.3.3/tests/test_scheduler.py +40 -0
- witnessd-2.3.3/tests/test_selftest_w4.py +31 -0
- witnessd-2.3.3/tests/test_session.py +55 -0
- witnessd-2.3.3/tests/test_shell_adapter.py +63 -0
- witnessd-2.3.3/tests/test_signing.py +77 -0
- witnessd-2.3.3/tests/test_signing_profile.py +31 -0
- witnessd-2.3.3/tests/test_state_isolation.py +134 -0
- witnessd-2.3.3/tests/test_status.py +19 -0
- witnessd-2.3.3/tests/test_substrate.py +282 -0
- witnessd-2.3.3/tests/test_substrate_keyless_guard.py +47 -0
- witnessd-2.3.3/tests/test_superflow_scout.py +295 -0
- witnessd-2.3.3/tests/test_supervisor.py +61 -0
- witnessd-2.3.3/tests/test_team_adapter_wiring.py +663 -0
- witnessd-2.3.3/tests/test_team_fanin.py +247 -0
- witnessd-2.3.3/tests/test_team_ledger.py +155 -0
- witnessd-2.3.3/tests/test_team_shell_lane_launch.py +343 -0
- witnessd-2.3.3/tests/test_team_worktree_prep.py +171 -0
- witnessd-2.3.3/tests/test_trust_anchor.py +32 -0
- witnessd-2.3.3/tests/test_v2_plan_run.py +376 -0
- witnessd-2.3.3/tests/test_w10_live_script.py +156 -0
- witnessd-2.3.3/tests/test_w12_real_a2.py +186 -0
- witnessd-2.3.3/tests/test_w13_revalidate.py +25 -0
- witnessd-2.3.3/tests/test_w15_parallel_execution.py +575 -0
- witnessd-2.3.3/tests/test_w16_merge_lanes.py +257 -0
- witnessd-2.3.3/tests/test_w17_journaled_resume.py +264 -0
- witnessd-2.3.3/tests/test_w18_dx.py +192 -0
- witnessd-2.3.3/tests/test_w1_fixtures.py +130 -0
- witnessd-2.3.3/tests/test_w1_negative_fixtures.py +55 -0
- witnessd-2.3.3/tests/test_w2_monotonicity.py +81 -0
- witnessd-2.3.3/tests/test_worktree_create.py +66 -0
- witnessd-2.3.3/tests/test_worktree_receipt.py +88 -0
- witnessd-2.3.3/tests/test_write_scope_declaration.py +44 -0
- witnessd-2.3.3/witnessd/__init__.py +0 -0
- witnessd-2.3.3/witnessd/__main__.py +4441 -0
- witnessd-2.3.3/witnessd/a2.py +112 -0
- witnessd-2.3.3/witnessd/adapter_run.py +574 -0
- witnessd-2.3.3/witnessd/adapters/__init__.py +0 -0
- witnessd-2.3.3/witnessd/adapters/agy.py +673 -0
- witnessd-2.3.3/witnessd/adapters/base.py +283 -0
- witnessd-2.3.3/witnessd/adapters/claude.py +1124 -0
- witnessd-2.3.3/witnessd/adapters/codex.py +502 -0
- witnessd-2.3.3/witnessd/adapters/gemini.py +356 -0
- witnessd-2.3.3/witnessd/adapters/opencode.py +59 -0
- witnessd-2.3.3/witnessd/adapters/shell.py +137 -0
- witnessd-2.3.3/witnessd/advisory_provenance.py +396 -0
- witnessd-2.3.3/witnessd/advisory_provenance_verify.py +102 -0
- witnessd-2.3.3/witnessd/budget.py +120 -0
- witnessd-2.3.3/witnessd/canonical.py +18 -0
- witnessd-2.3.3/witnessd/capture.py +133 -0
- witnessd-2.3.3/witnessd/changeset.py +161 -0
- witnessd-2.3.3/witnessd/codex_capability.py +358 -0
- witnessd-2.3.3/witnessd/distribution.py +475 -0
- witnessd-2.3.3/witnessd/emitter.py +563 -0
- witnessd-2.3.3/witnessd/eventlog.py +288 -0
- witnessd-2.3.3/witnessd/events.py +236 -0
- witnessd-2.3.3/witnessd/fanin.py +2034 -0
- witnessd-2.3.3/witnessd/faultkit.py +161 -0
- witnessd-2.3.3/witnessd/fixture.py +127 -0
- witnessd-2.3.3/witnessd/ids.py +22 -0
- witnessd-2.3.3/witnessd/installer.py +121 -0
- witnessd-2.3.3/witnessd/isolation.py +443 -0
- witnessd-2.3.3/witnessd/killswitch.py +273 -0
- witnessd-2.3.3/witnessd/learning.py +186 -0
- witnessd-2.3.3/witnessd/liveness.py +65 -0
- witnessd-2.3.3/witnessd/lock.py +104 -0
- witnessd-2.3.3/witnessd/model_declaration.py +52 -0
- witnessd-2.3.3/witnessd/model_policy.py +106 -0
- witnessd-2.3.3/witnessd/model_routing_benchmark.py +1007 -0
- witnessd-2.3.3/witnessd/observer.py +77 -0
- witnessd-2.3.3/witnessd/orro_advisory.py +1535 -0
- witnessd-2.3.3/witnessd/orro_auto.py +250 -0
- witnessd-2.3.3/witnessd/orro_next.py +481 -0
- witnessd-2.3.3/witnessd/orro_report.py +470 -0
- witnessd-2.3.3/witnessd/orro_review.py +358 -0
- witnessd-2.3.3/witnessd/orro_team_surface.py +204 -0
- witnessd-2.3.3/witnessd/orro_workflow.py +1472 -0
- witnessd-2.3.3/witnessd/orro_workstyle.py +293 -0
- witnessd-2.3.3/witnessd/pause.py +68 -0
- witnessd-2.3.3/witnessd/pilot.py +240 -0
- witnessd-2.3.3/witnessd/planner.py +353 -0
- witnessd-2.3.3/witnessd/preflight.py +130 -0
- witnessd-2.3.3/witnessd/privacy.py +106 -0
- witnessd-2.3.3/witnessd/process_identity.py +69 -0
- witnessd-2.3.3/witnessd/provenance.py +68 -0
- witnessd-2.3.3/witnessd/receipt.py +55 -0
- witnessd-2.3.3/witnessd/role_capability.py +254 -0
- witnessd-2.3.3/witnessd/router.py +115 -0
- witnessd-2.3.3/witnessd/runintent.py +158 -0
- witnessd-2.3.3/witnessd/runlog.py +76 -0
- witnessd-2.3.3/witnessd/scheduler.py +68 -0
- witnessd-2.3.3/witnessd/session.py +63 -0
- witnessd-2.3.3/witnessd/signing.py +231 -0
- witnessd-2.3.3/witnessd/signing_profile.py +54 -0
- witnessd-2.3.3/witnessd/state.py +145 -0
- witnessd-2.3.3/witnessd/status.py +28 -0
- witnessd-2.3.3/witnessd/substrate.py +363 -0
- witnessd-2.3.3/witnessd/superflow.py +278 -0
- witnessd-2.3.3/witnessd/supervisor.py +166 -0
- witnessd-2.3.3/witnessd/team_ledger.py +86 -0
- witnessd-2.3.3/witnessd/team_shell_lane_launch.py +558 -0
- witnessd-2.3.3/witnessd/team_worktree_prep.py +564 -0
- witnessd-2.3.3/witnessd/tool_declaration.py +63 -0
- witnessd-2.3.3/witnessd/trust_anchor.py +101 -0
- witnessd-2.3.3/witnessd/worktree.py +253 -0
- witnessd-2.3.3/witnessd/write_scope_declaration.py +50 -0
- witnessd-2.3.3/witnessd.egg-info/PKG-INFO +9 -0
- witnessd-2.3.3/witnessd.egg-info/SOURCES.txt +194 -0
- witnessd-2.3.3/witnessd.egg-info/dependency_links.txt +1 -0
- witnessd-2.3.3/witnessd.egg-info/entry_points.txt +2 -0
- witnessd-2.3.3/witnessd.egg-info/top_level.txt +2 -0
witnessd-2.3.3/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Moonweave Systems
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
witnessd-2.3.3/PKG-INFO
ADDED
witnessd-2.3.3/README.md
ADDED
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+
# witnessd
|
|
2
|
+
|
|
3
|
+
`witnessd` is the executing runtime engine for **ORRO** (Observed Run & Review
|
|
4
|
+
Orchestrator), published under the Moonweave account. It runs local lanes,
|
|
5
|
+
records what happened, signs the evidence, and leaves bytes that Depone can
|
|
6
|
+
re-derive offline.
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
Depone verifies; witnessd executes; ORRO exposes the workflow.
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
`Superflow` was the earlier product-surface name. New public docs should use
|
|
13
|
+
ORRO. Existing `superflow` commands, fixture paths, or artifact kinds may remain
|
|
14
|
+
as compatibility aliases during migration.
|
|
15
|
+
|
|
16
|
+
## 10-minute quickstart
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cd witnessd
|
|
20
|
+
python3 -m orro setup --home .witnessd --json
|
|
21
|
+
python3 -m orro doctor --home .witnessd --json
|
|
22
|
+
python3 -m orro advise "write two independent files" --repo . --home .witnessd --json
|
|
23
|
+
scout_json="$(python3 -m orro scout "map the repo before planning" --repo . --home .witnessd)"
|
|
24
|
+
run_dir="$(python3 -c 'import json,sys; print(json.loads(sys.argv[1])["run_dir"])' "$scout_json")"
|
|
25
|
+
python3 -m orro flowplan "write two independent files" --root . --profile code-change --out "$run_dir/workflow-plan.json"
|
|
26
|
+
run_json="$(python3 -m orro proofrun "write two independent files" --repo . --home .witnessd --workflow-plan "$run_dir/workflow-plan.json" --run-dir "$run_dir" --allow-reference-adapter --json)"
|
|
27
|
+
run_dir="$(python3 -c 'import json,sys; print(json.loads(sys.argv[1])["run_dir"])' "$run_json")"
|
|
28
|
+
python3 -m orro proofcheck "$run_dir" --home .witnessd --out "$run_dir/proofcheck-verdict.json" --json
|
|
29
|
+
python3 -m orro next "$run_dir" --home .witnessd --json
|
|
30
|
+
python3 -m orro auto --dry-run "$run_dir" --home .witnessd --json
|
|
31
|
+
python3 -m orro auto --until-complete "$run_dir" --home .witnessd --max-steps 2 --json
|
|
32
|
+
python3 -m orro report "$run_dir" --home .witnessd --json
|
|
33
|
+
python3 -m orro next "$run_dir" --home .witnessd --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`orro team init` only writes readiness configuration (`.orro/team.json`). It is
|
|
37
|
+
not execution, verification, proof, or assurance. `orro team go` is the ergonomic
|
|
38
|
+
wrapper for the longer `flowplan -> proofrun -> proofcheck -> report` path: it
|
|
39
|
+
threads the intermediate paths, passes the user's task text into the runner lane
|
|
40
|
+
prompt, writes `proofcheck-verdict.json`, and exits non-zero when the lane did no
|
|
41
|
+
work or Depone does not pass the evidence.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
python3 -m orro team init --template developer --yes
|
|
45
|
+
python3 -m orro team go "Create orro/task-output.txt with the exact line: hello ORRO" --repo . --home .witnessd --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The default `developer` template uses a real Codex runner model. Shell reference
|
|
49
|
+
lanes are allowed only for intentional script/test runs: `team go` blocks them
|
|
50
|
+
unless `--allow-reference-adapter` is passed, and even then the result and report
|
|
51
|
+
mark the run as reference/script work, not real AI work.
|
|
52
|
+
|
|
53
|
+
When `--profile` is omitted, `team go` calls `orro advise` and uses the
|
|
54
|
+
recommended profile. When `--team` is omitted, it selects the deterministic
|
|
55
|
+
default rolepack for that profile. Explicit `--profile` and `--team` always win.
|
|
56
|
+
The run writes `moonweave-routing-decision.json` so the advisory routing choice,
|
|
57
|
+
rule matches, selected profile, and selected rolepack are visible. That artifact
|
|
58
|
+
cannot change the evidence verdict and is not proof, approval, or assurance.
|
|
59
|
+
|
|
60
|
+
The `proofrun` command prints JSON. Use its `run_dir` field for the proofcheck
|
|
61
|
+
and handoff steps. A direct shell invocation (`orro proofrun --adapter shell --
|
|
62
|
+
<command>`) is capture-only and is not proofcheckable by itself. It does not
|
|
63
|
+
contain the workflow packet that proofcheck requires. Start with `orro scout`,
|
|
64
|
+
put the flowplan and proofrun artifacts in the scout run directory, or use
|
|
65
|
+
`orro team go`. The workflow path above is copy-pasteable; it uses the
|
|
66
|
+
intentional shell reference adapter and therefore is not real AI work.
|
|
67
|
+
`proofcheck` must write an explicit `proofcheck-verdict.json` before packaging
|
|
68
|
+
the handoff:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
python3 -m orro proofcheck .witnessd/runs/<run-dir> \
|
|
72
|
+
--home .witnessd \
|
|
73
|
+
--out .witnessd/runs/<run-dir>/proofcheck-verdict.json
|
|
74
|
+
python3 -m orro handoff .witnessd/runs/<run-dir> \
|
|
75
|
+
--out .witnessd/runs/<run-dir>/orro-handoff.json
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`team-ledger-verdict.json` emitted during a proofrun is not enough by itself for
|
|
79
|
+
handoff. `handoff` / `orro handoff` fails closed unless
|
|
80
|
+
`proofcheck-verdict.json` exists, is readable JSON, has `decision: "pass"`, and
|
|
81
|
+
contains the ORRO binding for the current evidence snapshot.
|
|
82
|
+
|
|
83
|
+
## Honest limits
|
|
84
|
+
|
|
85
|
+
witnessd signs the default single-machine flow with an operator key generated
|
|
86
|
+
by that same runtime. Verification labels this `trust_anchor: "self-signed"`:
|
|
87
|
+
the signature and evidence bytes remain checkable, but there is no independent
|
|
88
|
+
out-of-band anchor and the result must not claim observer-signed provenance or
|
|
89
|
+
A1/A2 from that key. To make an external trust anchor eligible, provision the
|
|
90
|
+
matching operator keypair outside the runtime and supply its public key through
|
|
91
|
+
`DEPONE_TRUSTED_OBSERVER_PUBLIC_KEY_FILE`; outputs then report
|
|
92
|
+
`trust_anchor: "operator-provided"`. Observer-signed/A2 language additionally
|
|
93
|
+
requires real observer/runner separation.
|
|
94
|
+
|
|
95
|
+
witnessd may emit self-declared runtime facts and `DELAYED_NOTARY` style
|
|
96
|
+
post-hoc records, but those records do not upgrade trust. A2 requires a
|
|
97
|
+
dedicated observer uid, a separate runner, and observer-owned evidence paths that
|
|
98
|
+
are not writable by the runner. Depone decides what the persisted bytes support.
|
|
99
|
+
For role-capability write scope, Depone can re-derive whether sealed touched-file
|
|
100
|
+
observations fit the sealed declared scope. That is tamper-evident consistency of
|
|
101
|
+
persisted evidence, not ground-truth proof of every host filesystem side effect.
|
|
102
|
+
Fulcio/Rekor keyless and transparency anchoring remain roadmap; the reserved
|
|
103
|
+
profile currently fails closed with `ERR_WITNESSD_KEYLESS_LIVE_UNIMPLEMENTED`.
|
|
104
|
+
|
|
105
|
+
## Source of truth
|
|
106
|
+
|
|
107
|
+
[`SPEC3.md`](SPEC3.md) is the only top-level witnessd product/runtime authority.
|
|
108
|
+
`SPEC.md`, `SPEC2.md`, `docs/plans/*`, `docs/conformance/*`, README, `SKILL.md`,
|
|
109
|
+
`AGENTS.md`, fixture notes, and release notes are derived, wave-specific, or
|
|
110
|
+
historical. If they conflict with `SPEC3.md`, `SPEC3.md` wins.
|
|
111
|
+
|
|
112
|
+
For the Depone verifier contract itself, Depone's `docs/spec.md` is the
|
|
113
|
+
authority. For the repo documentation map, see [`docs/README.md`](docs/README.md).
|
|
114
|
+
The cross-engine ORRO boundary is summarized in
|
|
115
|
+
[`docs/orro-engine-contract-v0.md`](docs/orro-engine-contract-v0.md).
|
|
116
|
+
The standalone ORRO product/distribution repository now lives at
|
|
117
|
+
<https://github.com/Moonweave-Systems/ORRO>. It owns product onboarding,
|
|
118
|
+
examples, distribution drafts, and e2e smoke-contract docs; it does not contain
|
|
119
|
+
witnessd runtime code or Depone verifier logic.
|
|
120
|
+
|
|
121
|
+
## User-facing names
|
|
122
|
+
|
|
123
|
+
| Public surface | Purpose |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| ORRO | flagship product/tool: evidence-governed agent workflow orchestrator |
|
|
126
|
+
| ORRO Flow | `scout -> flowplan -> proofrun -> proofcheck -> handoff` |
|
|
127
|
+
| `orro` | flagship goal -> scout -> plan -> run -> evidence -> verifier summary -> handoff |
|
|
128
|
+
| `orro setup` | one-command setup: provision pinned Depone, initialize home, and write engine lock |
|
|
129
|
+
| `orro init` | setup readiness/provision metadata; not proof or assurance |
|
|
130
|
+
| `orro advise` | non-executing workstyle router for the smallest safe workflow |
|
|
131
|
+
| `orro scout` | read-only repo exploration, repo profile, context pack, and discovery notes |
|
|
132
|
+
| `orro sketch` | validates and seals an agent-authored advisory direction |
|
|
133
|
+
| `orro trace` | validates, gates, and seals an agent-authored root-cause record |
|
|
134
|
+
| `orro advisory-provenance-check` | offline Depone v110 re-derivation of sealed sketch/trace provenance; not correctness |
|
|
135
|
+
| `orro flowplan` | plan-only workflow design and rolepack/workflow compiler surface |
|
|
136
|
+
| `orro proofrun` | precise evidence-backed execution alias |
|
|
137
|
+
| `orro proofcheck` | offline evidence verification alias |
|
|
138
|
+
| `orro handoff` | maintainer review package bound to an explicit passing `proofcheck-verdict.json` |
|
|
139
|
+
| `orro next` | non-executing continuation gate over persisted run artifacts |
|
|
140
|
+
| `orro report` | human-facing summary of observed ORRO artifacts and next safe action |
|
|
141
|
+
| `orro review` | advisory read-only reviewer-lane execution; emits review receipts only |
|
|
142
|
+
| `orro auto --dry-run` | non-executing automation planner that recommends the next command |
|
|
143
|
+
| `orro auto --once` | one-step executor for proofcheck or handoff only |
|
|
144
|
+
| `orro auto --until-complete` | bounded post-run loop over proofcheck and handoff only |
|
|
145
|
+
| `orro team init` | scaffold `.orro/team.json` rolepack readiness config; not proof or assurance |
|
|
146
|
+
| `orro team go` | one-command flowplan/proofrun/proofcheck/report wrapper; reports Depone verdict |
|
|
147
|
+
| `orro doctor` | engine, verifier, adapter, key, MCP, and policy readiness check |
|
|
148
|
+
| `orro auto` | future broader resume/continuation loop behind evidence gates |
|
|
149
|
+
|
|
150
|
+
`witnessd` is the engine name, not the main session skill name. `Moonweave` is the
|
|
151
|
+
publisher/account namespace, not the tool name.
|
|
152
|
+
|
|
153
|
+
## Repository strategy
|
|
154
|
+
|
|
155
|
+
Development currently stays in two engine repositories:
|
|
156
|
+
|
|
157
|
+
```text
|
|
158
|
+
Depone = verifier engine and evidence contract
|
|
159
|
+
witnessd = execution engine, evidence emitter, and near-term ORRO surface
|
|
160
|
+
ORRO = product/distribution/wrapper repository
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
The user-facing install should still be one thing: ORRO. Do not ask normal users
|
|
164
|
+
to install separate Depone and witnessd skills. In the near term, this repo hosts
|
|
165
|
+
the thin ORRO entrypoint because ORRO starts execution and witnessd owns
|
|
166
|
+
execution. `python3 -m orro ...` delegates to the existing `witnessd orro ...`
|
|
167
|
+
surface. The standalone `Moonweave-Systems/ORRO` repo now exists as the
|
|
168
|
+
product/distribution/wrapper repo, but engine code remains in Depone and
|
|
169
|
+
witnessd. It must not duplicate witnessd runtime behavior, Depone proofcheck
|
|
170
|
+
logic, or become a third engine. Depone remains a pinned verifier dependency.
|
|
171
|
+
|
|
172
|
+
Public ORRO setup starts with `orro setup`, which provisions a pinned Depone
|
|
173
|
+
verifier when needed, delegates to existing witnessd initialization/provisioning,
|
|
174
|
+
and creates readiness metadata such as `.witnessd/provision.json` plus
|
|
175
|
+
`.witnessd/orro-engine-lock.json`. It does not run ORRO Flow work, verify
|
|
176
|
+
evidence, approve merge, or raise assurance. For local development, an explicit
|
|
177
|
+
Depone checkout remains available:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
python3 -m orro setup --home .witnessd --depone-root ../Depone --json
|
|
181
|
+
python3 -m orro doctor --home .witnessd --json
|
|
182
|
+
python3 -m orro engine-lock --home .witnessd --check .witnessd/orro-engine-lock.json --json
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
`orro doctor` checks readiness, not evidence truth. When
|
|
186
|
+
`<home>/orro-engine-lock.json` exists, doctor compares the provisioned witnessd
|
|
187
|
+
and Depone commits against it by default. A doctor pass means that readiness
|
|
188
|
+
metadata is consistent with the recorded engine pair; it does not mean the pair
|
|
189
|
+
passed the ORRO end-to-end compatibility smoke. An engine lock records the
|
|
190
|
+
pinned engine commits for distribution tooling.
|
|
191
|
+
`orro-engine-lock.json` is distribution metadata only. `--out` writes the local
|
|
192
|
+
witnessd/Depone pin metadata; `--check` compares the current local environment
|
|
193
|
+
against that metadata to detect distribution drift. A matching lock means
|
|
194
|
+
readiness alignment only. It is not proof, evidence verification, merge approval,
|
|
195
|
+
or an assurance increase. A mismatch is readiness-blocked, not verifier-refuted.
|
|
196
|
+
|
|
197
|
+
`orro advise "<goal>" --repo . --home .witnessd --json` is the non-executing
|
|
198
|
+
workstyle router. It classifies the goal into a deterministic task class such as
|
|
199
|
+
`trivial-change`, `docs-change`, `code-change`, `review-only`,
|
|
200
|
+
`verification-only`, `release-readiness`, or `risky-change`, then recommends the
|
|
201
|
+
smallest safe ORRO path. It helps non-developers avoid wasteful or risky AI
|
|
202
|
+
workflows, but it does not replace proofrun, proofcheck, handoff, or human
|
|
203
|
+
review for risky changes. Its `orro-workstyle-decision` is advice only: not
|
|
204
|
+
proof, verifier truth, merge approval, or assurance.
|
|
205
|
+
When sketch or trace output is sealed, that record is auditable provenance only;
|
|
206
|
+
it does not establish that the recommended workflow or diagnosis is correct.
|
|
207
|
+
|
|
208
|
+
`orro sketch "<goal>" --decision sketch.json --repo . --home .witnessd --json`
|
|
209
|
+
validates and seals the calling agent's own frame, candidates, choice, rejection
|
|
210
|
+
reasons, no-gos, and rabbit holes. `orro trace "<symptom>" --decision trace.json
|
|
211
|
+
--repo . --home .witnessd --json` validates the agent's hypotheses and claimed
|
|
212
|
+
tier against the symptom-bound `orro-trace-reproduction.json` from a prior actual
|
|
213
|
+
run. The decision may bind either the source-file SHA-256 or the canonical sealed
|
|
214
|
+
receipt SHA-256. A claimed `confirmed` tier is refused unless the receipt binds a
|
|
215
|
+
real failing command, exit code, transcript digest, symptom, and authored
|
|
216
|
+
discriminating probe, and records a ruled-out rival plus red-to-green confirmation.
|
|
217
|
+
Suspected, speculative, and unconfirmed records impose no minimum hypothesis count
|
|
218
|
+
beyond shape consistency. Without `--decision`, each command
|
|
219
|
+
emits only a non-authoritative scaffold stamped `agent_authored=false` and
|
|
220
|
+
`degraded=true`; the harness-authored fallback is intended for headless/CI use.
|
|
221
|
+
Both surfaces are read-only advisory context, not evidence, verifier truth,
|
|
222
|
+
approval, or assurance; neither can mutate the inspected repo, change an evidence
|
|
223
|
+
verdict, or launch proofrun. Their skillpacks are reference knowledge for the
|
|
224
|
+
agent, not CLI-enforced ceremonies or CLI-generated reasoning.
|
|
225
|
+
|
|
226
|
+
With `--out`, sketch and trace also write `advisory-provenance-bundle.json` and
|
|
227
|
+
the Depone `v110.advisory_provenance` `evidence-contract.json`; trace additionally
|
|
228
|
+
copies the prior run receipt into the sealed subject set. A confirmed trace also
|
|
229
|
+
seals `orro-trace-execution.json` as a digest-bound subject and records its canonical
|
|
230
|
+
hash in the decision. That subject must already exist as a complete, self-hashed
|
|
231
|
+
`execution` object inside the prior-run reproduction; witnessd validates and
|
|
232
|
+
canonicalizes it but does not invent missing execution metadata. Re-derive the
|
|
233
|
+
separate provenance track with:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
python3 -m orro advisory-provenance-check <artifact-dir> --home .witnessd --json
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
`PASS` means the record is tamper-evident and the chosen direction or confirmed
|
|
240
|
+
tier is backed by the sealed bytes. It is not proof, execution-evidence truth,
|
|
241
|
+
approval, assurance, or a claim that the direction/root cause is correct.
|
|
242
|
+
|
|
243
|
+
`python scripts/check_orro_product_reality.py` validates local dogfood scenarios
|
|
244
|
+
for ORRO usefulness: smallest safe workflow, waste avoidance, proofcheck/handoff
|
|
245
|
+
gate integrity, artifact fatigue reduction, and clear next action. It is not
|
|
246
|
+
proof, verification, telemetry, a benchmark claim, approval, or assurance.
|
|
247
|
+
|
|
248
|
+
`python scripts/model_routing_benchmark.py` emits measurement JSON for the static
|
|
249
|
+
model-routing table. By default it is offline and deterministic: it loads a
|
|
250
|
+
24-task suite with seeded repository state and expected local verification,
|
|
251
|
+
then computes route/budget decisions without calling live models. `--live` is
|
|
252
|
+
an explicit opt-in runner or reviewer path that records task success, Depone
|
|
253
|
+
signed-bundle verification, elapsed time, turns, available token usage,
|
|
254
|
+
estimated cost, and model declaration status. A fallback receipt is recorded
|
|
255
|
+
only when the adapter exposes an observed model; otherwise the task carries an
|
|
256
|
+
explicit unavailable-model receipt. Live output includes advisory per-role/tier budgets
|
|
257
|
+
capped by the existing model-policy token, cost, and depth ceilings.
|
|
258
|
+
Fallback observation is not complete, so multi-candidate fallback remains
|
|
259
|
+
disabled. The measurement and budget advisory
|
|
260
|
+
are not proof, verifier truth, a benchmark claim, approval, or assurance, and
|
|
261
|
+
cannot change an evidence verdict.
|
|
262
|
+
|
|
263
|
+
`orro flowplan --profile <profile>` compiles a deterministic rolepack/workflow
|
|
264
|
+
plan for `code-change`, `review-only`, `verification-only`, `docs-change`, or
|
|
265
|
+
`release-readiness`. The plan is an `orro-workflow-plan` intent artifact, not
|
|
266
|
+
evidence. Roles do not create assurance by existing. `proofrun` is the first
|
|
267
|
+
execution phase, `proofcheck` is the verifier phase, and `handoff` is review
|
|
268
|
+
packaging only.
|
|
269
|
+
|
|
270
|
+
`orro proofrun --workflow-plan <path>` first applies a workflow phase gate. The
|
|
271
|
+
plan must allow `proofrun` and include a witnessd engine call that executes but
|
|
272
|
+
does not verify. If the plan does not allow the phase, proofrun fails before it
|
|
273
|
+
creates a run directory. When the phase is allowed, proofrun records
|
|
274
|
+
`workflow-plan.json`, `workflow-plan-binding.json`, and
|
|
275
|
+
`workflow-role-dispatch.json` in the run directory. The binding and role
|
|
276
|
+
dispatch are review context only: actual execution proof still begins with
|
|
277
|
+
proofrun evidence, Depone proofcheck still decides what the bytes support, and
|
|
278
|
+
neither artifact is proof, verification, approval, or assurance. `proofcheck`
|
|
279
|
+
and `handoff` preserve these references when they are present.
|
|
280
|
+
|
|
281
|
+
`orro flowplan --role-lanes-out <path>` writes an `orro-role-lane-plan` that
|
|
282
|
+
maps executable workflow roles to witnessd team lanes. The default lane adapter
|
|
283
|
+
is deterministic `shell`; live model adapters are not used by default.
|
|
284
|
+
`orro proofrun --workflow-plan <path> --role-lane-plan <path>` validates that the
|
|
285
|
+
role-lane plan is bound to the workflow plan, that proofrun is allowed, and that
|
|
286
|
+
execution is explicitly allowed before creating a run directory. It then reuses
|
|
287
|
+
existing witnessd team execution, fan-in, observer, and ledger machinery.
|
|
288
|
+
Role-lane plans are executable intent, not proof. `review-only`,
|
|
289
|
+
`verification-only`, and `release-readiness` role-lane plans do not launch
|
|
290
|
+
proofrun. Formal `orro handoff` still requires a passing bound
|
|
291
|
+
`proofcheck-verdict.json`.
|
|
292
|
+
|
|
293
|
+
`orro next <run-dir> --home .witnessd --json` is the non-executing continuation
|
|
294
|
+
gate before future `orro auto`. It reads persisted artifacts such as workflow
|
|
295
|
+
bindings, role-lane bindings, role dispatch, `team-ledger.json`,
|
|
296
|
+
`proofcheck-verdict.json`, and `orro-handoff.json`; then it reports the safest
|
|
297
|
+
next allowed action. It does not run proofcheck, execute workers, retry lanes,
|
|
298
|
+
repair evidence, approve merge, verify evidence, or raise assurance. Decisions
|
|
299
|
+
include `needs-proofcheck`, `ready-for-handoff`, `complete`, `blocked`,
|
|
300
|
+
`evidence-pending`, and `invalid-run-dir`. Role status is derived from observed
|
|
301
|
+
artifacts only and is not proof. `complete` requires `orro-handoff.json` to be
|
|
302
|
+
bound to the current run directory and current `proofcheck-verdict.json`; stale
|
|
303
|
+
or copied handoff artifacts block continuation.
|
|
304
|
+
|
|
305
|
+
Runtime hardening fails closed on malformed, stale, copied, or unbound critical
|
|
306
|
+
artifacts. Corrupted workflow bindings, role-lane bindings, role dispatch, team
|
|
307
|
+
ledgers, team-ledger verdicts, proofcheck verdicts, or handoff packages block
|
|
308
|
+
`next`, `report`, and `auto` instead of being treated as proof or success.
|
|
309
|
+
|
|
310
|
+
`orro report <run-dir> --home .witnessd --json` is the human-facing compression
|
|
311
|
+
layer over a run directory. It summarizes observed workflow, role-lane,
|
|
312
|
+
execution, proofcheck, handoff, continuation, auto, and optional workstyle
|
|
313
|
+
artifacts; then it states the next safe action and reviewer focus. It helps
|
|
314
|
+
non-developers and reviewers understand what happened and reduces artifact
|
|
315
|
+
fatigue. It does not execute, verify evidence, run proofcheck, package handoff,
|
|
316
|
+
approve merge, raise assurance, replace proofcheck, or replace human review.
|
|
317
|
+
|
|
318
|
+
`orro auto --dry-run <run-dir> --home .witnessd --json` consumes `orro next`
|
|
319
|
+
state and emits an `orro-auto-plan` with the exact command it would run next,
|
|
320
|
+
such as proofcheck or handoff. It does not run that command, call Depone, launch
|
|
321
|
+
workers, write proofcheck verdicts, write handoff packages, mutate worktrees,
|
|
322
|
+
approve merge, verify evidence, or raise assurance. The auto-plan is
|
|
323
|
+
recommendation context only, not proof. Broader autonomous `orro auto` remains
|
|
324
|
+
future work and must stay gated by continuation decisions.
|
|
325
|
+
|
|
326
|
+
`orro auto --once <run-dir> --home .witnessd --json` re-checks continuation
|
|
327
|
+
state and executes at most one safe next step. In v0, the only allowed steps are
|
|
328
|
+
proofcheck for `needs-proofcheck`, handoff for `ready-for-handoff`, and no-op for
|
|
329
|
+
`complete` after the handoff binding is checked. It never launches proofrun or
|
|
330
|
+
workers, calls live models or MCP, repairs artifacts, retries lanes, resumes
|
|
331
|
+
lanes, approves merge, or raises assurance. When it runs proofcheck,
|
|
332
|
+
verification is delegated to Depone. The `orro-auto-receipt` is orchestration
|
|
333
|
+
metadata only, not proof or verifier truth.
|
|
334
|
+
|
|
335
|
+
`orro auto --until-complete <run-dir> --home .witnessd --max-steps 2 --json` is
|
|
336
|
+
bounded post-run automation. It re-checks continuation state before every step
|
|
337
|
+
and may run only proofcheck and handoff. It never launches proofrun or workers,
|
|
338
|
+
calls live models or MCP, repairs artifacts, retries or resumes lanes, approves
|
|
339
|
+
merge, or raises assurance. It stops on blocked, evidence-pending,
|
|
340
|
+
invalid-run-dir, max-steps, or complete. The `orro-auto-session` is orchestration
|
|
341
|
+
metadata only, not proof or verifier truth.
|
|
342
|
+
|
|
343
|
+
The separate `Moonweave-Systems/ORRO` repository now exists for distribution
|
|
344
|
+
needs: marketplace manifests, host-specific plugin packaging, version locking,
|
|
345
|
+
examples, product docs, and end-to-end integration tests. That repo is a wrapper
|
|
346
|
+
and distribution repo, not a third engine; it must not duplicate witnessd
|
|
347
|
+
runtime logic or Depone verifier logic.
|
|
348
|
+
|
|
349
|
+
The concrete migration trigger, allowed standalone skeleton, version lock
|
|
350
|
+
format, engine boundary contract, and e2e smoke contract are recorded in
|
|
351
|
+
[`docs/orro-productization-roadmap.md`](docs/orro-productization-roadmap.md).
|
|
352
|
+
|
|
353
|
+
## Operating model
|
|
354
|
+
|
|
355
|
+
ORRO is an evidence-backed agent-team operating surface. The normal loop is:
|
|
356
|
+
|
|
357
|
+
```text
|
|
358
|
+
scout -> flowplan -> proofrun -> proofcheck -> handoff
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
The scout step uses progressive disclosure instead of loading a whole repository
|
|
362
|
+
into one model context. It produces:
|
|
363
|
+
|
|
364
|
+
- `repo-profile.json`
|
|
365
|
+
- `context-pack.json`
|
|
366
|
+
- `discovery-notes.md`
|
|
367
|
+
- optional `skillpack-lock.json`
|
|
368
|
+
|
|
369
|
+
Runnable lanes may include:
|
|
370
|
+
|
|
371
|
+
- `verification-recipe.json` for intended checks,
|
|
372
|
+
- `verification-receipt.json` for actual command execution,
|
|
373
|
+
- `mcp-tool-receipt-*.json` for declared external tool bridge calls,
|
|
374
|
+
- `pr-handoff.json` for maintainer review.
|
|
375
|
+
|
|
376
|
+
Scout does not write `verification-receipt.json`; it has not run the recipe.
|
|
377
|
+
Depone proofcheck treats a scout-only artifact directory as planning evidence,
|
|
378
|
+
not proof of execution.
|
|
379
|
+
|
|
380
|
+
`flowplan` remains strictly plan-only. With a profile, it may write an
|
|
381
|
+
`orro-workflow-plan` that maps the goal to roles, phases, engine calls, required
|
|
382
|
+
gates, and forbidden assurance sources. It does not run workers, call live
|
|
383
|
+
models, call Depone verification, mutate worktrees, approve merge, or raise
|
|
384
|
+
assurance. Broader autonomous `orro auto` and `orro ultra` remain future work.
|
|
385
|
+
|
|
386
|
+
The optional workflow-plan binding connects that intent artifact to later
|
|
387
|
+
proofrun evidence by hash. Phase gates prevent using a plan for a phase it does
|
|
388
|
+
not allow. `workflow-role-dispatch.json` maps workflow roles to actual or
|
|
389
|
+
pending engine phases and may reference `team-ledger.json`; it does not let role
|
|
390
|
+
names count as evidence. A `review-only` profile is review intent only; actual
|
|
391
|
+
`orro handoff` still requires a passing bound `proofcheck-verdict.json`.
|
|
392
|
+
|
|
393
|
+
Depone decides what these bytes support. Skill text, MCP output, IDE terminals,
|
|
394
|
+
tmux panes, and session transcripts are not verdicts by themselves.
|
|
395
|
+
The handoff step packages reviewed evidence only after an explicit passing
|
|
396
|
+
`proofcheck-verdict.json` bound to the current evidence snapshot; it does not
|
|
397
|
+
verify evidence, approve merge, or raise assurance.
|
|
398
|
+
|
|
399
|
+
## Setup details
|
|
400
|
+
|
|
401
|
+
Prerequisites:
|
|
402
|
+
|
|
403
|
+
- Python 3.10 or newer
|
|
404
|
+
- `git`
|
|
405
|
+
- `openssl`
|
|
406
|
+
- a local Depone checkout or provisioned Depone pin
|
|
407
|
+
|
|
408
|
+
From a checkout with Depone next to witnessd:
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
cd witnessd
|
|
412
|
+
python3 -m orro setup --home .witnessd --depone-root ../depone --json
|
|
413
|
+
python3 -m orro doctor --home .witnessd --json
|
|
414
|
+
python3 -m witnessd run "write two independent files" --repo . --home .witnessd
|
|
415
|
+
python3 -m witnessd verify .witnessd/runs/<run-dir> --home .witnessd
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
The `run` command prints JSON. Use its `run_dir` field for the verify step:
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
run_json="$(python3 -m witnessd run "write two independent files" --repo . --home .witnessd)"
|
|
422
|
+
run_dir="$(python3 -c 'import json,sys; print(json.loads(sys.argv[1])["run_dir"])' "$run_json")"
|
|
423
|
+
python3 -m witnessd verify "$run_dir" --home .witnessd
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
On a runner machine without a local Depone checkout, `orro setup` provisions the
|
|
427
|
+
pinned verifier into `.witnessd/depone-pinned` and records that setup-time
|
|
428
|
+
network use:
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
python3 -m orro setup --home .witnessd --json
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
For the same path as CI:
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
WITNESSD_DEPONE_ROOT=../depone scripts/quickstart_check.sh
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
Expected output:
|
|
441
|
+
|
|
442
|
+
```text
|
|
443
|
+
quickstart_check: pass
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
## What the commands do
|
|
447
|
+
|
|
448
|
+
`orro init` delegates to witnessd initialization/provisioning and creates:
|
|
449
|
+
|
|
450
|
+
- `.witnessd/config.json`
|
|
451
|
+
- `.witnessd/provision.json`
|
|
452
|
+
- `.witnessd/keys/`
|
|
453
|
+
|
|
454
|
+
The provision record pins the local Depone checkout by git commit and records the
|
|
455
|
+
witnessd commit. Setup may use network only when explicitly allowed by the
|
|
456
|
+
operator. Runtime and verify commands do not fetch or install.
|
|
457
|
+
|
|
458
|
+
`witnessd run "<goal>" --repo <path>` uses the W18 quota-free shell path by
|
|
459
|
+
default. It creates a run directory containing:
|
|
460
|
+
|
|
461
|
+
- optional `workflow-plan.json`, `workflow-plan-binding.json`, and
|
|
462
|
+
`workflow-role-dispatch.json`
|
|
463
|
+
- `sealed-plan.json`
|
|
464
|
+
- `dispatch-log.jsonl`
|
|
465
|
+
- lane evidence directories
|
|
466
|
+
- `team-schedule-receipt.json`
|
|
467
|
+
- `team-ledger.json`
|
|
468
|
+
- `team-ledger-verdict.json`
|
|
469
|
+
|
|
470
|
+
`witnessd verify <run-dir>` validates the pinned Depone record, invokes Depone
|
|
471
|
+
through `python3 -m depone team-ledger`, and rewrites
|
|
472
|
+
`team-ledger-verdict.json` from the run bytes.
|
|
473
|
+
|
|
474
|
+
`witnessd proofcheck <run-dir> --out <run-dir>/proofcheck-verdict.json`
|
|
475
|
+
delegates to Depone's proofcheck path and writes the public ORRO verdict artifact
|
|
476
|
+
required by `handoff` / `orro handoff`. A missing, malformed, unreadable, or
|
|
477
|
+
non-pass `proofcheck-verdict.json`, or one copied from another evidence snapshot,
|
|
478
|
+
blocks handoff and does not write `orro-handoff.json`.
|
|
479
|
+
|
|
480
|
+
`python3 -m orro <subcommand>` and the witnessd-provided `orro` console script
|
|
481
|
+
are deprecated compatibility shims. They warn on stderr, delegate to the same
|
|
482
|
+
ORRO parser, and will be removed in the next major witnessd release. The
|
|
483
|
+
standalone `Moonweave-Systems/ORRO` package now owns the product `orro` command
|
|
484
|
+
and distribution docs.
|
|
485
|
+
|
|
486
|
+
## Session skill
|
|
487
|
+
|
|
488
|
+
This repo ships two in-session guidance files:
|
|
489
|
+
|
|
490
|
+
- `SKILL.md` for host skill installation
|
|
491
|
+
- `AGENTS.md` for Codex sessions
|
|
492
|
+
|
|
493
|
+
Both instruct the session agent to scout when useful, design lanes, run witnessd,
|
|
494
|
+
then report the Depone verdict. `team-ledger-verdict.json` records the proofrun
|
|
495
|
+
team-ledger check; `proofcheck-verdict.json` is the explicit public verdict
|
|
496
|
+
artifact required before handoff. A session transcript or lane self-report is not
|
|
497
|
+
a verdict, and a self-declared success claim remains evidence-pending until
|
|
498
|
+
Depone re-derives the run bytes.
|
|
499
|
+
|
|
500
|
+
## Auditor path
|
|
501
|
+
|
|
502
|
+
An auditor does not need witnessd to execute anything. Given a run directory and
|
|
503
|
+
Depone:
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
python3 -m depone team-ledger \
|
|
507
|
+
--ledger <run-dir>/team-ledger.json \
|
|
508
|
+
--base-dir <run-dir> \
|
|
509
|
+
--out <run-dir>/team-ledger-verdict.json \
|
|
510
|
+
--json
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
Depone verifies from persisted bytes. It does not run lanes. For scope-style
|
|
514
|
+
checks, it re-derives consistency between sealed declarations and sealed
|
|
515
|
+
observations; it does not observe the live filesystem directly.
|
|
516
|
+
|
|
517
|
+
## Phase 0 evidence limitations
|
|
518
|
+
|
|
519
|
+
The current Phase 0 safety patch records known evidence-substrate limitations
|
|
520
|
+
instead of upgrading trust claims. Codex JSONL capture, predeclared write paths,
|
|
521
|
+
preflight fail-closed checks, and operator-key overwrite protection are release
|
|
522
|
+
safety controls. They do not prove code correctness, complete artifact binding,
|
|
523
|
+
or full tamper resistance. Same-size same-mtime content changes, runlog
|
|
524
|
+
chain-hardening, and eventlog scaling remain Phase 1 evidence-core work until
|
|
525
|
+
the redesign gate closes.
|
|
526
|
+
|
|
527
|
+
## Development checks
|
|
528
|
+
|
|
529
|
+
From the Moonweave workspace:
|
|
530
|
+
|
|
531
|
+
```bash
|
|
532
|
+
cd depone
|
|
533
|
+
python3 -m unittest discover -s tests
|
|
534
|
+
cd ../witnessd
|
|
535
|
+
PYTHONPATH=../depone python3 -m unittest discover -s tests
|
|
536
|
+
PYTHONPATH=../depone python3 -m witnessd self-test --all
|
|
537
|
+
for script in scripts/revalidate_*.py; do
|
|
538
|
+
PYTHONPATH=../depone python3 "$script"
|
|
539
|
+
done
|
|
540
|
+
scripts/quickstart_check.sh
|
|
541
|
+
```
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""Deprecated witnessd-hosted ``orro`` shim."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import sys
|
|
7
|
+
from difflib import get_close_matches
|
|
8
|
+
|
|
9
|
+
from witnessd.__main__ import ORRO_COMMANDS, main as witnessd_main
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
DEPRECATION_WARNING = (
|
|
13
|
+
"warning: witnessd-hosted orro is deprecated; install the ORRO package with "
|
|
14
|
+
"pip install \"orro>=0.0.2\" for the orro command. This shim will be removed "
|
|
15
|
+
"in the next major witnessd release."
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
ORRO_HELP = """usage: orro [-h] {setup,init,advise,scout,sketch,trace,flowplan,proofrun,proofcheck,advisory-provenance-check,handoff,next,report,review,auto,team,doctor,engine-lock} ...
|
|
19
|
+
|
|
20
|
+
ORRO - Observed Run & Review Orchestrator
|
|
21
|
+
|
|
22
|
+
ORRO Flow:
|
|
23
|
+
scout -> sketch/trace -> flowplan -> proofrun -> proofcheck -> handoff
|
|
24
|
+
|
|
25
|
+
public commands:
|
|
26
|
+
setup provision pinned Depone, initialize home, and write engine lock
|
|
27
|
+
init setup readiness/provision metadata; does not verify evidence
|
|
28
|
+
advise non-executing workstyle router for the smallest safe workflow
|
|
29
|
+
scout read-only repository exploration and context packaging
|
|
30
|
+
sketch validate and seal an agent-authored advisory direction
|
|
31
|
+
trace validate, gate, and seal an agent-authored root-cause record
|
|
32
|
+
flowplan plan-only workflow design; does not run workers
|
|
33
|
+
proofrun evidence-backed execution through witnessd
|
|
34
|
+
proofcheck offline evidence verification delegated to Depone
|
|
35
|
+
advisory-provenance-check
|
|
36
|
+
offline Depone v110 re-derivation of sealed advisory provenance
|
|
37
|
+
handoff maintainer review package gated by proofcheck-verdict.json
|
|
38
|
+
next non-executing continuation gate over persisted run artifacts
|
|
39
|
+
report human-facing summary of observed ORRO artifacts and next action
|
|
40
|
+
review advisory read-only reviewer lanes; not proof or assurance
|
|
41
|
+
auto dry-run, one-step, or bounded post-run automation
|
|
42
|
+
team scaffold team config or run flowplan/proofrun/proofcheck/report
|
|
43
|
+
doctor ORRO readiness check; does not verify evidence
|
|
44
|
+
engine-lock write/check distribution metadata for pinned engine commits
|
|
45
|
+
|
|
46
|
+
boundary:
|
|
47
|
+
Depone verifies; witnessd executes; ORRO exposes the workflow.
|
|
48
|
+
advise, sketch, trace, next, and report read status/intent only; trace consumes a
|
|
49
|
+
symptom-bound prior-run receipt without executing repo code; auto --dry-run recommends
|
|
50
|
+
commands only; auto --once executes at most one proofcheck or handoff step;
|
|
51
|
+
auto --until-complete loops over those post-run steps with --max-steps. None
|
|
52
|
+
is proof or assurance. A provenance PASS means sealed bytes are internally
|
|
53
|
+
re-derivable; it does not establish that a direction or root cause is correct.
|
|
54
|
+
|
|
55
|
+
options:
|
|
56
|
+
-h, --help show this help message and exit
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def main(argv: list[str] | None = None) -> int:
|
|
61
|
+
args = list(sys.argv[1:] if argv is None else argv)
|
|
62
|
+
if os.environ.get("ORRO_WRAPPER_DELEGATION") != "1":
|
|
63
|
+
print(DEPRECATION_WARNING, file=sys.stderr)
|
|
64
|
+
if not args or args[0] in {"-h", "--help"}:
|
|
65
|
+
print(ORRO_HELP)
|
|
66
|
+
return 0
|
|
67
|
+
command = args[0]
|
|
68
|
+
if command not in ORRO_COMMANDS:
|
|
69
|
+
print(f"orro: unknown command '{command}'", file=sys.stderr)
|
|
70
|
+
suggestion = get_close_matches(command, sorted(ORRO_COMMANDS), n=1)
|
|
71
|
+
if suggestion:
|
|
72
|
+
print(f"did you mean '{suggestion[0]}'?", file=sys.stderr)
|
|
73
|
+
print(
|
|
74
|
+
"valid commands: " + ", ".join(sorted(ORRO_COMMANDS)),
|
|
75
|
+
file=sys.stderr,
|
|
76
|
+
)
|
|
77
|
+
return 2
|
|
78
|
+
return witnessd_main(["orro", *args])
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
if __name__ == "__main__":
|
|
82
|
+
sys.exit(main())
|
witnessd-2.3.3/setup.cfg
ADDED