|
| 1 | +// SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | +// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> |
| 3 | += ADR-0001: verisimdb-data carries two explicit purposes |
| 4 | +:revdate: 2026-05-13 |
| 5 | +:status: Accepted |
| 6 | + |
| 7 | +== Status |
| 8 | + |
| 9 | +Accepted — 2026-05-13. |
| 10 | + |
| 11 | +Resolves: https://github.com/hyperpolymath/verisimdb-data/issues/2[V-L1-J1]. |
| 12 | + |
| 13 | +== Context |
| 14 | + |
| 15 | +This repository advertised three different identities across its top-level |
| 16 | +docs: |
| 17 | + |
| 18 | +. `README.adoc` — "Git-backed flat-file storage for scan results and drift |
| 19 | + detection data" with panic-attacker scan ingest workflow. |
| 20 | +. `EXPLAINME.adoc` — "Uses the hyperpolymath ABI/FFI standard |
| 21 | + (Idris2 + Zig). Same pattern used across `proven`, `burble`, and |
| 22 | + `gossamer`." |
| 23 | +. `TOPOLOGY.md` — "Receives panic-attack scan results, |
| 24 | + hardware-crash-team findings, and drift detection snapshots… enables |
| 25 | + historical analysis of repository health and compliance drift over time." |
| 26 | + |
| 27 | +The directory layout backs two of these stories with real content: |
| 28 | + |
| 29 | +* `scans/` holds ~301 JSON files of scan results (production data). |
| 30 | +* `ffi/zig/` holds working Zig FFI code (`build.zig` + three `.zig` files). |
| 31 | + |
| 32 | +The contractile and `.machine_readable/` scaffolding is org-wide |
| 33 | +infrastructure that applies to either purpose. |
| 34 | + |
| 35 | +== Decision |
| 36 | + |
| 37 | +The repository serves **two purposes**, explicitly declared in `README.adoc`: |
| 38 | + |
| 39 | +. **Flat-file data store** for panic-attacker scan output and drift |
| 40 | + snapshots (`scans/`, `dispatch/`, `patterns/`, `recipes/`, `outcomes/`, |
| 41 | + `policy/`, `health/`). |
| 42 | +. **ABI dogfood site** for the hyperpolymath Idris2 + Zig ABI standard |
| 43 | + shared with `proven`, `burble`, and `gossamer` (`ffi/zig/`). |
| 44 | + |
| 45 | +Both purposes coexist; neither is moved out. The acceptable layout is |
| 46 | +documented at the top of `README.adoc` and reflected in `TOPOLOGY.md`. |
| 47 | + |
| 48 | +Verisimiser does *not* depend on `ffi/zig/` here; if a downstream consumer |
| 49 | +needs the Zig FFI extracted, that is a future ADR. |
| 50 | + |
| 51 | +== Consequences |
| 52 | + |
| 53 | +. `README.adoc`, `EXPLAINME.adoc`, and `TOPOLOGY.md` are brought into |
| 54 | + agreement on the two-purpose framing (one PR with this ADR). |
| 55 | +. The directory layout document in `README.adoc` lists which subtrees |
| 56 | + serve which purpose. |
| 57 | +. Future expansions to either purpose are fine — the repo is explicitly |
| 58 | + multi-purpose, not "drifting" between purposes. |
| 59 | + |
| 60 | +== Alternatives considered |
| 61 | + |
| 62 | +Scan-store only (move `ffi/zig/` out):: |
| 63 | +Rejected. The Zig FFI lives here for dogfooding reasons that predate |
| 64 | +verisimiser; relocating it costs more than documenting the dual purpose. |
| 65 | + |
| 66 | +ABI dogfood only (move `scans/` out):: |
| 67 | +Rejected. The scan ingest workflow is wired up and producing data; |
| 68 | +moving 301 JSON files plus the ingest pipeline elsewhere has no payoff. |
| 69 | + |
| 70 | +Split into two repos:: |
| 71 | +Rejected for the same combined reason. Maybe revisit in a year if either |
| 72 | +purpose grows large enough to warrant its own repo and CI surface. |
0 commit comments