Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,16 @@

> the doctrine of the home is `~/cyber/AGENTS.md`; it applies here first. Claude Code receives both files at session start through `~/.config/cyber/agents-md.nu`; other agents read them in order.

cybernode is rung 7 of the soft3 ladder: the node. `rs/` is the crate and the binary `cybernode`; `specs/` the chain, wire, conformance, genesis, native-node and routing contracts; `deploy/` the units of a running instance; `audit/` the receipts. the wire identifiers (`soft3/chain/…/v1`), the genesis files and the home directories are unchanged by the move from soft3 (2026-10-27): a change to any of them is a consensus change and follows specs/chain.md § 7. the operations of cyberia's own instance live in the private repository `apparatus`.
cybernode is rung 7 of the soft3 ladder: the node. `rs/` is the crate and the binary `cybernode`; `specs/` the chain, wire, conformance, genesis, native-node and routing contracts; `deploy/` the units of a running instance; `audit/` the receipts. the wire identifiers (`soft3/chain/…/v1`), the genesis files and the home directories are unchanged by the move from soft3 (2026-10-27): a change to any of them is a consensus change and follows specs/chain.md § 7. the operations of cyberia's own instance live in the private repository `apparatus`. the kept names (`SOFT3_*` variables, `/etc/soft3`, `~/.soft3`, the wire identifiers) are listed in README § kept names: never rename them in code; everything a person reads says cybernode.

## gates

the release train (`soft3/release/train_gates.py`, listed for this repository in `soft3/release/director/plan.md` on `release/phase1`) runs these gates over cybernode; a red gate ships red with its evidence, never hidden:

- `cybernode-tests` — the node's `cargo test` in `rs/` against the pinned siblings
- `cybernode-release` — the release executable of this crate, one per platform
- `node-status` — boots the release binary with `node --home DIR --bind ADDR` and expects `GET /status` 200 with `height` and `chain` within 20 s
- `stack-chain-genesis` — chain-conformance § 10: the pussy genesis file (`SOFT3_GENESIS_DIR`, default `~/.cache/cyber/genesis`) reproduces the blessed particle, state root and block-0 id of `conformance/chain.snap`; blocked, never green, without the file
- `stack-pussy-identity` — `rs/tests/pussy_identity.rs`: the blessed pussy file boots when cached (plan row P4a)

local checks before a commit: `bash -n` on every script under `deploy/`, `nu --ide-check 0 scripts/chain-fleet.nu`, `deploy/chain/tests/run.sh`.
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ decided and executed from [[soft3/proposals/cybernode|the cybernode proposal]] (
|---|---|
| `rs/` | the crate and binary `cybernode`: `chain/` the kernel, `genesis/`, `node/`, `wallet/`, `network.rs`; the verbs `run` (`node`) · `mine` · `sync` (`status`) · `genesis` · `chain` · `conformance` · `network` |
| `specs/` | [[cybernode/specs/chain|chain]] · [[cybernode/specs/chain-wire|chain-wire]] · [[cybernode/specs/chain-conformance|chain-conformance]] · [[cybernode/specs/chain-economy|chain-economy]] · [[cybernode/specs/genesis|genesis]] · [[cybernode/specs/native-node|native-node]] · [[cybernode/specs/routing|routing]] |
| `deploy/` | `cybernode@<network>.service`, `cybernode-check`, journald, logrotate, nginx and ufw templates of an instance |
| `audit/` | the receipts: conformance, economy, mining, the net, the requirement map of the chain |
| `deploy/` | `cybernode@<network>.service`, `cybernode-check`, journald, logrotate, nginx and ufw templates of an instance; `deploy/chain/README.md` is the runbook of the two apparatus hosts |
| `scripts/` | `chain-fleet.nu`, three nodes on one machine — the local rehearsal of the runbook |
| `docs/` | [[cybernode/docs/launch|launch]], the node operator guide: install, run, probe, the public host |
| `audit/` | the receipts: conformance, economy, mining, the net, the requirement map of the chain, block relation and proof authentication |

```
cargo install --path rs # or: cargo install cybernode, once published
Expand All @@ -24,6 +26,12 @@ cybernode mine --address NEURON --node http://127.0.0.1:8545
cybernode conformance check chain
```

operators start at [[cybernode/docs/launch|docs/launch.md]]; the root chain on the apparatus hosts follows `deploy/chain/README.md`.

## kept names

decided 2026-11-02 while closing the proposal (§ 5): the wire identifiers (`soft3/chain/…/v1`, `soft3/spacepussy-test/v1`), the genesis files, the home directories (`~/.soft3/<chain>`, `/etc/soft3`, `/var/lib/soft3`) and the environment variable names `SOFT3_CHAIN`, `SOFT3_BIND`, `SOFT3_RADIO`, `SOFT3_MONIKER`, `SOFT3_STALE_SECS`, `SOFT3_MIN_DISK_GIB`, `SOFT3_DEV_EPOCH`, `SOFT3_COST_*`, `SOFT3_CONFORMANCE_DIR`, `SOFT3_GENESIS_DIR`, `SOFT3_GENESIS_REQUIRED` (and the check's `SOFT3_ETC`, `SOFT3_STATE`, `SOFT3_PIDFILE`, `SOFT3_MINE_*`; the agent-a runner's `SOFT3_CHECK`, `SOFT3_LOG_NET`) keep their names, for compatibility with the running hosts and every genesis hash. everything a person reads — strings, docs, unit names, scripts, specs — says cybernode. a change to a kept name is a consensus or an operations change and goes through specs/chain.md § 7 or the apparatus runbooks.

the `soft3` crate remains the stack facade: it depends on cybernode, re-exports its modules for one release and forwards the operational verbs, so nothing that built against `soft3::chain` breaks today. the soft3 repository keeps the ladder, the contracts of the stack, the release train and the SDKs; the private repository `apparatus` keeps cyberia's own hosts, secrets and runbooks.

what the node must still grow, so that cyberia runs all of its execution on it, is the capability table of the proposal § 4: proving workers and block aggregation, the index over bbg, snapshots and tip proofs, particles over radio blobs, operator keys through vault. each lands here as a spec, code and a receipt.
Loading