This file describes how echidnabot fits the Rhodium Standard Repository template. For the compliance status checklist (what’s green / what’s red) see RSR_COMPLIANCE.adoc.
The detailed compliance table tracks individual gates; this file explains the shape the project takes inside the RSR framework.
| Attribute | Value |
|---|---|
Project |
echidnabot |
Role |
Tier-1 Verifier in gitbot-fleet |
Primary Language |
Rust (RSR Tier 1) |
Secondary Languages |
Idris2 (ABI proofs), Zig (FFI), Guile Scheme (Guix packaging) |
RSR Tier Target |
Gold |
Compliance Status |
|
Phase |
Beta (per |
Completion |
~100% feature-complete, production-hardening in progress |
License |
MPL-2.0 (Palimpsest) |
Maintainer |
Jonathan D.A. Jewell <jonathan.jewell@open.ac.uk> |
echidnabot/
├── .editorconfig # Editor configuration
├── .gitignore # Standard ignore patterns
├── .gitattributes # Line-ending normalisation
├── .guix-channel # Guix channel definition
├── .well-known/ # RFC-compliant metadata
│ ├── security.txt
│ ├── ai.txt
│ └── humans.txt
├── .machine_readable/ # A2ML descriptors (canonical)
│ ├── 6a2/ # STATE / META / AGENTIC / ECOSYSTEM / etc.
│ ├── bot_directives/ # Per-bot directive files
│ ├── contractiles/ # intend / bust / adjust contractile verbs
│ └── svc/ # Service descriptors (k9 templates)
├── .github/
│ ├── workflows/ # CI (quality / codeql / scorecard / hypatia-scan / …)
│ └── ISSUE_TEMPLATE/ # bug / feature / docs templates
├── .claude/ # AI-assistant operating instructions
│ └── CLAUDE.md
├── 0-AI-MANIFEST.a2ml # First-read pointer for AI assistants
├── src/ # Rust source
│ ├── abi/ # Idris2 ABI definitions (Types/Layout/Foreign)
│ ├── adapters/ # Platform adapters (GitHub/GitLab/Bitbucket)
│ ├── api/ # GraphQL + webhook handlers
│ ├── dispatcher/ # ECHIDNA client
│ ├── scheduler/ # Job queue / retry / circuit breaker
│ ├── executor/ # Container isolation
│ ├── modes/ # Bot modes
│ ├── trust/ # Confidence / integrity / axiom tracking
│ ├── feedback/ # Double-loop tactic-outcome recording
│ ├── fleet/ # gitbot-fleet shared-context wiring
│ └── store/ # SQLite + PostgreSQL persistence
├── ffi/zig/ # Zig FFI implementation (scaffold, see ABI-FFI-README.md)
├── tests/ # Integration / property / smoke / seam suites
├── proofs/ # Dogfood proofs (Coq + Lean, includes intentional failures)
├── benches/ # cargo-criterion benchmarks
├── fuzz/ # ClusterFuzzLite harnesses
├── docs/ # Long-form documentation (casket-ssg)
├── wiki/ # Wiki source (mirrored to GitHub wiki)
├── packaging/ # Container / Guix packaging artefacts
├── hooks/ # Git hooks
├── examples/ # Sample integrations
├── scripts/ # Maintenance / one-shot tooling
├── config/ # Default config snapshots
├── contracts/ # Service contracts (if applicable)
├── contractiles/ # Contractile-verb implementations
├── echidna/ # Submodule pointing at upstream ECHIDNA
├── Cargo.toml / Cargo.lock # Rust manifest
├── Containerfile # OCI image (Chainguard base)
├── guix.scm # Guix package definition (primary; nix deprecated 2026-06-01)
├── Mustfile / Justfile-ish # Task runner
├── echidnabot.toml # Default config
├── echidnabot.example.toml # Annotated example config
├── LICENSE / LICENSE.txt # MPL-2.0 (identical text, dual filename for tooling)
├── PALIMPSEST.adoc # Palimpsest license commentary
├── README.adoc # Canonical README
├── README.md # Markdown summary (links to .adoc)
├── EXPLAINME.adoc # Receipts behind README claims
├── ROADMAP.adoc # Phases / completion
├── ABI-FFI-README.md # Zig FFI + Idris2 ABI boundary
├── BRANDING.md # Visual identity / topics
├── MAINTAINERS.adoc # Maintainership
├── CODE_OF_CONDUCT.md # Conduct
├── CONTRIBUTING.md # Contribution guide
├── SECURITY.md # Vulnerability reporting
├── SUPPORT (.md if present) # Support channels
├── CHANGELOG.md # Auto-generated from conventional commits
├── CITATION.cff # Academic citation metadata
├── codemeta.json # CodeMeta software metadata
├── RELEASE_CHECKLIST.md # Release procedure
├── RSR_COMPLIANCE.adoc # Compliance status
└── RSR_OUTLINE.adoc # This fileRust ✓ (primary), AffineScript, Idris2 ✓ (ABI proofs), Zig ✓ (FFI), Ada, Haskell.
Nickel ✓ (configs in config/), Guile Scheme ✓ (guix.scm).
Nix is deprecated estate-wide as of 2026-06-01 — Guix is the sole
primary; nix flakes have been removed and are not a Tier 2 acceptable
language any more.
TypeScript (use AffineScript), Node.js / npm / Bun / pnpm / yarn (use Deno), Go (use Rust), Python (use Julia / Rust / AffineScript), Java / Kotlin / Swift (use Tauri / Dioxus), Jekyll (use casket-ssg), Dockerfile (use Containerfile).
Python is allowed only in salt/ directories (none in this repo).
Per the estate boundary convention:
-
Zig — APIs + FFIs (see
ffi/zig/) -
Idris2 — ABIs (see
src/abi/) -
SNIFs — Service-Neutral Interface Fragments
-
typed-wasm — Cross-language compile target
-
Groove Protocol — Top-level coordination
| File | Status | Notes |
|---|---|---|
|
✓ |
|
|
✓ |
|
|
✓ |
Line-ending normalisation |
|
✓ |
Canonical |
|
✓ |
Markdown summary |
|
✓ |
MPL-2.0 (dual filename intentional) |
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
Generated from conventional commits |
|
✓ |
|
|
✓ |
|
|
✓ |
Chainguard base |
|
✓ |
Primary packaging |
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
Detailed status |
|
✓ |
This file |
|
✓ |
AI first-read pointer |
|
✓ |
AI agent operating rules |
|
✓ |
A2ML descriptors |
The canonical project-state file
(.machine_readable/6a2/STATE.a2ml) carries:
-
[metadata]— project / version / last-updated / session -
[project-context]— purpose / completion-percentage -
[position]— phase / maturity -
[external-targets]— for CRG B-grade qualification (≥ 6 targets) -
[issues-fed-back]— bugs found in echidnabot that surfaced upstream -
[field-signal]— adoption / mention evidence -
[known-drift]— acknowledged but not-yet-fixed issues (e.g. monorepo+standalone dual-truth)
Update this file in the same commit as any substantive functional change.
| Repository | Relationship |
|---|---|
|
Upstream proof engine consumed via REST/GraphQL |
|
Fleet membership (Tier-1 Verifier) |
|
Estate-wide neurosymbolic CI coordinator |
|
CI workflow reusables + governance policies |
|
Sibling — RSR structural compliance |
|
Sibling — architectural seam hygiene |
|
Sibling — release readiness |
|
Future absorption target for |
-
echidna (upstream engine)