This commit is contained in:
ruvnet
2026-07-29 04:12:58 +00:00
parent 8e246a45f6
commit f4f9a34f4b
2 changed files with 66 additions and 1 deletions
@@ -2,7 +2,7 @@
| Field | Value |
|-------|-------|
| **Status** | Accepted — **implemented** (O1O9, `@ruvnet/ruview@0.2.0`): fail-closed `claim-check`, async MCP dispatch (ping answered mid-`verify`, pinned by e2e test), zero-dependency install, bounded output tails, argv-passed monitor port, package.json-sourced version, prepack skill sync, memoized `which()`, underscore-canonical tools with dotted aliases, word-boundary guardrail matching. 30/30 tests (MEASURED, `node --test test/*.test.mjs`); CI gate in ADR-265's `npm-packages.yml` |
| **Status** | Accepted — **implemented** (O1O9 in `@ruvnet/ruview@0.2.0`; security/community extension in `0.3.0`, ADR-283): fail-closed schemas and MCP policy, async dispatch, zero runtime dependencies, bounded/redacted local Claude/Codex adapters, reviewed shared brain, and replay-verified Darwin/Flywheel gate. 53/53 tests (MEASURED, `node --test test/*.test.mjs`, 2026-07-28); CI gate in `ruview-harness-flywheel.yml` |
| **Date** | 2026-07-02 |
| **Deciders** | ruv |
| **Codename** | **RUVIEW-NPM-REVIEW-1** |
@@ -0,0 +1,65 @@
# ADR-283: RuView community metaharness and verified learning flywheel
| Field | Value |
|---|---|
| Status | Accepted — P0/P1 implemented |
| Date | 2026-07-28 |
| Builds on | ADR-182, ADR-263, ADR-265 |
## Decision
Extend `harness/ruview` as the single contributor automation boundary for
repository exploration, development, debugging, testing and release
preparation. The published package remains runtime-dependency-free.
Two local hosts are supported with executable contracts:
- Claude Code uses non-interactive `claude -p --safe-mode`, JSON output, no
session persistence, plan mode, and only read/search tools by default.
- Codex uses `codex exec -`, a trusted `-C` root, `read-only` sandbox,
ephemeral sessions, strict config parsing, ignored user config/exec rules and
JSONL output.
Both use shell-free subprocesses, stdin prompts, allowlisted environments,
bounded output/time, secret redaction and realpath-based RuView checkout
validation. Write mode requires two explicit flags and never uses permission or
sandbox bypasses.
## Shared brain
The public brain is committed JSONL, not a shared mutable database. Canonical
records are reviewed, bounded, source-relative, source-cited and content
digested. Secret-shaped and instruction-shaped submissions are quarantined.
Community learning enters through ordinary proposal pull requests.
Ruflo/AgentDB may build local semantic indexes and private overlays from that
corpus. Those indexes, raw transcripts, credentials and personal/CSI data are
not committed. This provides a common brain without turning retrieved text into
executable policy.
## Darwin and Flywheel
The seven policy surfaces are explicit in `flywheel/genome.json`. Evolution is
human-initiated and each Darwin candidate may mutate only one surface.
Contributor runs produce untrusted `.metaharness/` artifacts.
Promotion is conjunctive:
1. the frozen anchor cannot regress;
2. the holdout must improve;
3. legacy and security tests pass;
4. no blocked action or secret exposure occurs;
5. corpus, files and gate fingerprints verify;
6. a maintainer reviews and approves the replay bundle.
Flywheel signatures establish bundle integrity, not maintainer authority.
Authority comes from protected-branch review and release provenance. CI never
autonomously promotes or publishes an evolved candidate.
## Consequences
Contributors can explore RuView with either major local CLI and share durable
findings without sharing secrets. Improvements become reproducible proposals
with frozen evaluation evidence. The cost is a larger development-only npm
lockfile, a 128 KiB unpacked-package budget (the current tarball is below that
bound), and explicit maintenance of the corpus, genome and gate.