Skip to content

Commit c07de63

Browse files
docs(wiki): audience-segmented wiki + lay-person & press kits (#157)
## Summary Adds `docs/wiki/` as the version-controlled, GitHub-wiki-ready source of truth for the project wiki, organised as an **audience router**: a single landing page sends each reader to a track written for them. This delivers the requested documentation tailored to five distinct audiences and closes the `docs/wiki*` coverage gap the 2026-04-18 audit flagged. ## What's included | Page | Audience | New? | |------|----------|------| | `Home.md` | Landing page + audience router | ✅ new | | `For-Lay-People.md` | Non-technical readers (no jargon, analogies) | ✅ new | | `For-Users.md` | Installing & driving the shell | ✅ new | | `For-Developers.md` | Toolchain, 6 proof systems, contribution rules | ✅ new | | `For-Platform-Maintainers.md` | Dependencies, packaging, supply chain | ✅ new | | `For-Marketers-and-Journalists.md` | Press kit + accurate-claims table + fact-check contacts | ✅ new | | `Verification-Status.md` | Shared honest-status reference (three trust levels, open holes, feature reality) | ✅ new | | `_Sidebar.md` | Navigation shown on every wiki page | ✅ new | | `README.md` | Explains the directory + GitHub-wiki sync procedure | ✅ new | Also updates `docs/README.adoc` to list the new `wiki/` subtree and mark the audit's wiki-coverage gap closed. ## Honesty discipline Every page is anchored to the project's self-assessed v0.9.0 status: **advanced research prototype, not production-ready**; the reversibility proofs are solid and reproducible, but the proof-to-code correspondence is property-tested (~85% confidence), not mechanically proven, and RMO/GDPR secure deletion is stubbed. The marketer/journalist page carries an explicit **"claims you may make ✅ vs. claims to avoid ❌"** table to prevent over-claiming. ## Conventions - Files use **GitHub-wiki naming** (hyphenated pages, `Home.md`, `_Sidebar.md`) so they publish to the wiki verbatim; `wiki/README.md` documents the one-time init + sync steps. - Inter-page links use bare wiki names; links to in-repo files use full `blob/main` URLs so they resolve from the wiki context too. - Prose licensed **CC-BY-SA-4.0** with SPDX headers on every file. ## Validation - All internal wiki links verified to resolve to existing pages. - No contractile reject-tokens present. - Docs-only change: no source, proofs, or CI touched. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01KfgJznd6jzSeDYsSXGAXkU --- _Generated by [Claude Code](https://claude.ai/code/session_01KfgJznd6jzSeDYsSXGAXkU)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 2c028a4 commit c07de63

10 files changed

Lines changed: 862 additions & 2 deletions

docs/README.adoc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
Project-level documentation tree. ~49 entries (subdirs + files);
66
historically flat-organised — the 2026-04-18 audit flagged the lack of
77
`docs/architecture/`, `docs/decisions/`, `docs/practice/`, `docs/wikis/`
8-
subtrees as a coverage gap, but the existing files are themselves
9-
well-maintained.
8+
subtrees as a coverage gap. The wiki gap is now closed by `wiki/` (an
9+
audience-segmented, GitHub-wiki-ready tree); the existing files are
10+
themselves well-maintained.
1011

1112
This README provides orientation; individual files are self-describing.
1213

@@ -16,6 +17,13 @@ This README provides orientation; individual files are self-describing.
1617
|===
1718
| Path | Role
1819

20+
| `wiki/`
21+
| In-repository source of truth for the GitHub wiki. Audience-segmented
22+
tracks (lay people, users, developers, platform maintainers,
23+
marketers/journalists) plus a shared honest-status page, routed from
24+
`Home.md`. Uses GitHub-wiki naming so it can be published verbatim; see
25+
`wiki/README.md` for the sync procedure.
26+
1927
| `governance/`
2028
| Authoritative governance artefacts. Currently
2129
`CRG-AUDIT-2026-04-18.adoc` (the active audit driving the v0.9.x

docs/wiki/For-Developers.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
<!--
2+
SPDX-License-Identifier: CC-BY-SA-4.0
3+
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
-->
5+
# For Developers
6+
7+
You want to build Valence Shell, read or extend the proofs, or contribute code.
8+
This page orients you; the canonical developer guide is
9+
[`QUICKSTART-DEV.adoc`](https://github.com/hyperpolymath/valence-shell/blob/main/QUICKSTART-DEV.adoc).
10+
11+
---
12+
13+
## The stack at a glance
14+
15+
| Layer | Language | Location |
16+
|-------|----------|----------|
17+
| Interactive shell (primary deliverable) | **Rust** (crate `vsh`) | `impl/rust-cli/` |
18+
| Formal proofs (6 systems) | **Coq, Lean 4, Agda, Isabelle/HOL, Mizar, Z3** | `proofs/` |
19+
| ABI / proof carrier | **Idris2** | `proofs/idris2/`, `src/abi/` |
20+
| C-ABI FFI boundary | **Zig** (exports `valence_shell_*`) | `ffi/zig/` |
21+
| Verified POSIX helper library | **Rust** (`vsh-ffi`) | `ffi/rust/` |
22+
| Reference impl / MCP server | **Elixir / ReScript** | `impl/elixir/`, `impl/mcp/` |
23+
24+
Architecture deep-dive: [`docs/ARCHITECTURE.md`](https://github.com/hyperpolymath/valence-shell/blob/main/docs/ARCHITECTURE.md)
25+
and the evidence-backed [`EXPLAINME.adoc`](https://github.com/hyperpolymath/valence-shell/blob/main/EXPLAINME.adoc).
26+
27+
## Build & test
28+
29+
> **Tooling policy:** this project uses **`just`** as its task runner (`make` is
30+
> banned). Environments are provided via **Guix** (preferred) or **Nix**
31+
> (fallback).
32+
33+
```bash
34+
# Environment
35+
guix shell # preferred
36+
nix develop # fallback
37+
38+
# The shell (only needs a Rust toolchain)
39+
cd impl/rust-cli
40+
cargo build --release
41+
cargo test # 736 passing, 0 failures, 14 ignored
42+
43+
# Re-check the proofs (needs the proof assistants installed)
44+
just verify-proofs # all systems
45+
just build-lean4 # or one at a time: coq / agda / isabelle / mizar / z3
46+
```
47+
48+
Run the ignored slow/stress tests explicitly with `cargo test -- --ignored`.
49+
50+
## The six proof systems (and why six)
51+
52+
Each system sits on a different logical foundation, so a modelling error in one
53+
is unlikely to be replicated in all. If all six prove the same theorem, confidence
54+
is very high — the seL4/CompCert pattern.
55+
56+
| System | Foundation | Role |
57+
|--------|-----------|------|
58+
| Lean 4 | Dependent type theory | Primary source of truth |
59+
| Coq | Calculus of Inductive Constructions | Extraction path to OCaml |
60+
| Agda | Intensional type theory | Cross-validation |
61+
| Isabelle/HOL | Higher-order logic | Cross-validation |
62+
| Mizar | Tarski–Grothendieck set theory | Set-theoretic foundation |
63+
| Z3 SMT | First-order logic + theories | Automated decision procedures |
64+
65+
**Read the honest status first:** the project maintains a single source of truth
66+
for open proof holes —
67+
[`docs/PROOF_HOLES_AUDIT.md`](https://github.com/hyperpolymath/valence-shell/blob/main/docs/PROOF_HOLES_AUDIT.md).
68+
As of this writing: 1 real gap (Coq `obliterate_overwrites_all_blocks`), 1
69+
justified decidability axiom, and 1 structural `funext` axiom (Agda). The Idris2
70+
ABI layer is **hole-free** (closed under `--total`) with 2 registered
71+
primitive-equality axioms gated by CI.
72+
73+
## Contributing
74+
75+
Contribution rules are enforced by machine, not just convention. Before you open
76+
a PR, read:
77+
78+
- [`CONTRIBUTING.md`](https://github.com/hyperpolymath/valence-shell/blob/main/CONTRIBUTING.md)
79+
— the Tri-Perimeter Contribution Framework (core / extensions / community).
80+
- `.machine_readable/MUST.contractile` — the hard invariants. Highlights:
81+
- No `believe_me`/`assert_total` (Idris2), no new `Admitted.` (Coq), no `sorry`
82+
(Lean), no `Obj.magic` (OCaml).
83+
- No `unsafe {}` block in Rust without an inline `// SAFETY:` comment.
84+
- Language policy (see `.claude/CLAUDE.md`): no new TypeScript/Go/general
85+
Python; Deno over Node; `just` over `make`.
86+
- Commits must be GPG-signed.
87+
- K9 validators in `contractiles/k9/` run these checks on every PR.
88+
89+
Pre-PR checklist:
90+
91+
```bash
92+
just lint # format + lint
93+
just test # all tests pass
94+
just panic-scan # panic-safety scan
95+
```
96+
97+
## Fuzzing
98+
99+
Seven `cargo-fuzz` targets live in `impl/rust-cli/fuzz/fuzz_targets/` (parser,
100+
arith, job-spec, signal-parse, path-ops, glob-expansion, state-machine). CI runs
101+
them via ClusterFuzzLite (`.clusterfuzzlite/`, `.github/workflows/cflite_*.yml`)
102+
using the **address** sanitizer — the one cargo-fuzz reliably supports for Rust.
103+
104+
## AI-assisted development
105+
106+
If you use an AI assistant, load the project context first: `just llm-context`,
107+
or read `0-AI-MANIFEST.a2ml` and `.claude/CLAUDE.md`. The `.machine_readable/`
108+
tree holds structured state/meta/ecosystem files.
109+
110+
---
111+
112+
## Where to go next
113+
114+
- Packaging & deployment → [For Platform Maintainers](For-Platform-Maintainers)
115+
- The ABI/FFI boundary → [`docs/ABI-FFI-BOUNDARY.md`](https://github.com/hyperpolymath/valence-shell/blob/main/docs/ABI-FFI-BOUNDARY.md)
116+
- Honest limits → [Verification Status](Verification-Status)

docs/wiki/For-Lay-People.md

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
<!--
2+
SPDX-License-Identifier: CC-BY-SA-4.0
3+
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
-->
5+
# Valence Shell, explained without jargon
6+
7+
*This page assumes no computing background. If you're comfortable with a
8+
command line, you may prefer [For Users](For-Users) or
9+
[For Developers](For-Developers).*
10+
11+
---
12+
13+
## What is a "shell", first of all?
14+
15+
When you use a computer, you usually click on things. Underneath the clicking,
16+
there's an older, more direct way to tell a computer what to do: you **type
17+
commands**, one line at a time — "make a folder called *taxes*", "copy this file
18+
into it", "delete that one". The program that reads those typed commands and
19+
carries them out is called a **shell**. Professionals use shells all day because
20+
typing exact instructions is fast, precise, and repeatable.
21+
22+
The most common shells are called **bash** and **zsh**. You've been near one if
23+
you've ever seen a black window full of green or white text in a film about
24+
hackers. It's far less dramatic than that — it's just a very literal assistant.
25+
26+
## So what's different about *this* shell?
27+
28+
Here is the uncomfortable truth about ordinary shells: **they trust themselves.**
29+
30+
When you tell a normal shell "delete this folder", it assumes its own delete
31+
button works. When you undo something, it *hopes* the undo puts everything back
32+
exactly as it was. Usually it does. But "usually" is doing a lot of work in that
33+
sentence, and when it's your only copy of something important, "usually" isn't
34+
good enough.
35+
36+
Valence Shell replaces "hope" with **proof**.
37+
38+
## What does "proof" mean here?
39+
40+
Think about the difference between two kinds of statement:
41+
42+
- *"I tested this bridge by driving a few trucks over it, and it held."*
43+
- *"I calculated, from the laws of physics, that this bridge holds any truck up
44+
to 40 tonnes — and here's the math, check it yourself."*
45+
46+
The first is **testing**. It's useful, but it only tells you about the trucks
47+
you actually tried. The second is a **proof**. It covers every truck, including
48+
ones nobody has driven yet.
49+
50+
Almost all software in the world is built the first way: tested, not proven.
51+
Valence Shell is built the second way — at least for its most important
52+
operations. The claim "undoing a *make-folder* gives you back exactly what you
53+
started with" isn't something the authors merely tried a few times. It's
54+
something they **proved mathematically**, the way you'd prove a theorem in a
55+
geometry class — except the proof is checked by a computer program that is very,
56+
very hard to fool.
57+
58+
## Why six proofs instead of one?
59+
60+
Valence Shell doesn't prove things once. It proves the same facts **six separate
61+
times, using six different mathematical "languages"** (they have names like Coq,
62+
Lean, and Agda — you don't need to remember them).
63+
64+
Why the repetition? For the same reason important contracts get read by several
65+
independent lawyers. If one person makes a subtle mistake, the others are likely
66+
to catch it. If all six independent systems — built by different people, on
67+
different principles — agree that a fact is true, the chance that they *all* made
68+
the *same* mistake is vanishingly small. This "prove it several ways" approach is
69+
used for the software inside things like verified aircraft and secure government
70+
systems.
71+
72+
## The two big ideas, in kitchen terms
73+
74+
Valence Shell is organised around two promises:
75+
76+
1. **"You can always undo this."** *(The proven, working part.)*
77+
Like a pencil with a perfect eraser. Made a folder by mistake? Copied the
78+
wrong file? The shell can step backwards and put the world back exactly as it
79+
was — and it can *prove* the eraser leaves no smudge. This is the part that
80+
works today.
81+
82+
2. **"When you destroy something, it's *really* gone — and you can prove it."**
83+
*(Designed and mathematically worked out, but not yet built into the running
84+
program.)*
85+
Sometimes you *want* permanent deletion — think of the legal "right to be
86+
forgotten", where a company must genuinely erase your personal data, not just
87+
hide it. The hard part isn't deleting; it's being able to **prove to an
88+
outside inspector** that the data is truly unrecoverable. Valence Shell has
89+
the mathematics for this worked out, but has **not yet finished building it
90+
into the actual software.**
91+
92+
The project's name for holding both promises honestly is **Mutually Assured
93+
Accountability**: both you *and* an independent checker end up with hard evidence
94+
of what really happened — nobody has to just take anybody's word for it.
95+
96+
## Is it finished? Can I rely on it?
97+
98+
**No, not yet — and the authors are unusually upfront about this.**
99+
100+
- The shell **runs** and does a great deal already.
101+
- The "you can always undo this" proofs are **real and reproducible** — you can
102+
re-run them on your own computer.
103+
- But the bridge between the *proven math* and the *actual running program* is
104+
not yet fully mechanically checked — right now it's confirmed by heavy testing
105+
(roughly 85% confidence), not by an end-to-end proof.
106+
- The "provably destroyed" (right-to-be-forgotten) feature is **designed but not
107+
built yet**.
108+
109+
So: it's a serious, honest **research prototype**, wonderful for learning,
110+
experimenting, and academic work — but **not something to trust with your only
111+
copy of anything important, and not a replacement for your everyday shell.**
112+
113+
The project publishes its own "here's exactly what is and isn't finished" pages,
114+
which is a good sign of trustworthy engineering rather than marketing:
115+
116+
- [Verification Status & Honest Limits](Verification-Status)
117+
- The [FAQ](https://github.com/hyperpolymath/valence-shell/blob/main/FAQ.adoc)
118+
119+
## Why does any of this matter?
120+
121+
Because we increasingly ask software to do things that *really* matter — handle
122+
medical records, financial transactions, legal evidence, personal data protected
123+
by law. For those jobs, "we tested it and it seemed fine" is a weak foundation.
124+
Valence Shell is part of a small but growing movement that says: for the
125+
operations that truly matter, we should be able to **prove** the software behaves
126+
— and let anyone check the proof.
127+
128+
It's a research project exploring what that future could look like, starting with
129+
one of the oldest and most fundamental tools in computing: the humble shell.
130+
131+
---
132+
133+
## Where to go next
134+
135+
- Curious what it actually looks like to use? → [For Users](For-Users)
136+
- Want the honest "what works / what doesn't" list? → [Verification Status](Verification-Status)
137+
- Writing an article about it? → [For Marketers & Journalists](For-Marketers-and-Journalists)

0 commit comments

Comments
 (0)