Skip to content

Commit 05d991b

Browse files
hyperpolymathclaude
andcommitted
docs: align README/EXPLAINME/TOPOLOGY around two-purpose framing
Per ADR-0001 (repo purpose) the repository serves two explicit purposes: flat-file scan/drift data store, and ABI dogfood for the hyperpolymath Idris2 + Zig standard. The three top-level docs each described a different subset of this; bringing them into agreement. - README.adoc — rewritten with explicit two-purpose intro, a layout-by-purpose table, a Related-repos cross-link to verisimiser, and an index-freshness pointer (the CI lane added in a sibling commit). Preserves the existing scan ingest workflow + JSON format documentation under Purpose 1. - EXPLAINME.adoc — quote at top reflects both purposes; file map expanded to call out which subtrees serve which purpose; pointer to verisimiser added. - TOPOLOGY.md — Purpose section restated; module map updated to reflect the actual directory layout (no `hardware/` or `drift/` dirs — those were placeholders in the old doc); ffi/zig/ called out; integration points include verisimiser. Closes #2 (V-L1-J1 implementation; the ADR was the decision). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 06453fc commit 05d991b

3 files changed

Lines changed: 119 additions & 44 deletions

File tree

EXPLAINME.adoc

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,54 @@ The README makes claims. This file backs them up.
77

88
[quote, README]
99
____
10-
Git-backed flat-file storage for scan results and drift detection data.
10+
This repository serves two explicit purposes: (1) a flat-file data
11+
store for panic-attacker scan results, hardware-crash-team findings,
12+
and drift snapshots; (2) an ABI dogfood site for the hyperpolymath
13+
Idris2 + Zig ABI shared with `proven`, `burble`, `gossamer`.
1114
____
1215

13-
== Technology Choices
16+
See `docs/decisions/ADR-0001-repo-purpose.adoc` for why both purposes
17+
live in one repo.
18+
19+
== Technology choices (Purpose 2 — ABI)
1420

1521
[cols="1,2"]
1622
|===
1723
| Technology | Learn More
1824

19-
| **Zig** | https://ziglang.org
25+
| **Zig** | https://ziglang.org
2026
| **Idris2 ABI** | https://www.idris-lang.org
2127
|===
2228

23-
== Dogfooded Across The Account
24-
25-
Uses the hyperpolymath ABI/FFI standard (Idris2 + Zig). Same pattern used across
29+
The Zig FFI implementation lives in `ffi/zig/` and follows the same
30+
pattern as
2631
https://github.com/hyperpolymath/proven[proven],
2732
https://github.com/hyperpolymath/burble[burble], and
2833
https://github.com/hyperpolymath/gossamer[gossamer].
2934

30-
== File Map
35+
== File map
3136

32-
[cols="1,2"]
37+
[cols="1,2,1"]
3338
|===
34-
| Path | What's There
35-
36-
| `src/` | Source code
37-
| `ffi/` | Foreign function interface
39+
| Path | What's there | Purpose
40+
41+
| `scans/` | Per-repo scan results (JSON; ~301 files) | data
42+
| `dispatch/` | Dispatch records | data
43+
| `patterns/` | Drift / scan pattern definitions | data
44+
| `recipes/` | Ingest and aggregation recipes | data
45+
| `outcomes/` | Outcome records | data
46+
| `policy/` | Storage and retention policy notes | data
47+
| `health/` | Health-state snapshots | data
48+
| `index.json` | Master index of stored data | data
49+
| `ffi/zig/` | Zig FFI implementation | ABI dogfood
3850
|===
3951

52+
== Related
53+
54+
`verisimiser` (https://github.com/hyperpolymath/verisimiser) is the
55+
augmentation CLI; this repo holds its scan/drift output but is not a
56+
runtime dependency.
57+
4058
== Questions?
4159

4260
Open an issue or reach out directly — happy to explain anything in more detail.

README.adoc

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,49 @@
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>
13
= VeriSimDB Data Repository
24

3-
Git-backed flat-file storage for scan results and drift detection data.
5+
This repository serves *two explicit purposes*, per
6+
`docs/decisions/ADR-0001-repo-purpose.adoc`:
47

5-
== Structure
8+
. **Flat-file data store** for panic-attacker scan results,
9+
hardware-crash-team findings, and drift snapshots.
10+
. **ABI dogfood** for the hyperpolymath Idris2 + Zig ABI standard
11+
shared with https://github.com/hyperpolymath/proven[`proven`],
12+
https://github.com/hyperpolymath/burble[`burble`], and
13+
https://github.com/hyperpolymath/gossamer[`gossamer`].
614

7-
- `scans/` - panic-attack scan results per repo
8-
- `hardware/` - hardware-crash-team findings
9-
- `drift/` - drift detection snapshots
10-
- `index.json` - Master index of all stored data
15+
== Related repos
1116

12-
== Usage
17+
* https://github.com/hyperpolymath/verisimiser[`verisimiser`] — the
18+
augmentation CLI. This repo holds its scan and drift output;
19+
standalone consumers (`panic-attacker`, `hardware-crash-team`) also
20+
write here. Verisimiser does not require this repo at runtime.
1321

14-
This repo receives scan results via GitHub Actions workflow_dispatch events
15-
and stores them as JSON files. The ingest workflow updates the index
16-
automatically.
22+
== Layout (by purpose)
1723

18-
== Integration
24+
[cols="1,2,1"]
25+
|===
26+
| Path | What's there | Purpose
1927

20-
=== Sending Scan Results
28+
| `scans/` | Per-repo scan results (JSON; ~301 files) | data
29+
| `dispatch/` | Dispatch records | data
30+
| `patterns/` | Drift / scan pattern definitions | data
31+
| `recipes/` | Ingest and aggregation recipes | data
32+
| `outcomes/` | Outcome records | data
33+
| `policy/` | Storage and retention policy notes | data
34+
| `health/` | Health-state snapshots | data
35+
| `index.json` | Master index of stored data | data
36+
| `ffi/zig/` | Zig FFI implementation | ABI dogfood
37+
| `.machine_readable/` | Contractile machinery (org-wide) | both
38+
| `.github/workflows/` | CI (ingest, mirrors, governance) | both
39+
| `docs/decisions/` | ADRs | both
40+
|===
2141

22-
Other repos can send scan results using the reusable workflow:
42+
== Purpose 1 — flat-file data store
43+
44+
=== Receiving scan results
45+
46+
Other repos send scan results using the reusable workflow:
2347

2448
[source,yaml]
2549
----
@@ -35,19 +59,19 @@ jobs:
3559
uses: hyperpolymath/panic-attacker/.github/workflows/scan-and-report.yml@main
3660
----
3761

38-
=== Querying Results
62+
=== Querying results
3963

4064
Clone this repo and read the JSON files:
4165

4266
[source,bash]
4367
----
4468
git clone https://github.com/hyperpolymath/verisimdb-data
4569
cd verisimdb-data
46-
cat scans/echidna.json # View specific repo results
47-
jq '.repos' index.json # View all scan summaries
70+
cat scans/echidna.json # specific repo
71+
jq '.repos' index.json # all scan summaries
4872
----
4973

50-
== File Format
74+
=== File format
5175

5276
Each scan result in `scans/` is a JSON file with the structure:
5377

@@ -75,6 +99,19 @@ Each scan result in `scans/` is a JSON file with the structure:
7599
}
76100
----
77101

102+
=== Index freshness
103+
104+
`index.json` is the master summary. A CI lane regenerates it from
105+
`scans/` on every push and fails if the working tree changes (i.e. the
106+
committed index must match what the regen script produces from the
107+
files on disk). See `scripts/regen-index.sh`.
108+
109+
== Purpose 2 — ABI dogfood
110+
111+
`ffi/zig/` is a working Zig FFI implementation of the hyperpolymath
112+
Idris2 + Zig ABI standard. The same pattern is used in `proven`,
113+
`burble`, and `gossamer`; this repo serves as the dogfood instance.
114+
78115
== License
79116

80117
SPDX-License-Identifier: PMPL-1.0-or-later

TOPOLOGY.md

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,50 @@
55

66
## Purpose
77

8-
VeriSimDB Data Repository is a git-backed flat-file storage system for scan results and drift detection data. Receives panic-attack scan results, hardware-crash-team findings, and drift detection snapshots via GitHub Actions workflow_dispatch events. Maintains master index and enables historical analysis of repository health and compliance drift over time.
8+
This repository serves two explicit purposes per
9+
[`docs/decisions/ADR-0001-repo-purpose.adoc`](docs/decisions/ADR-0001-repo-purpose.adoc):
910

10-
## Module Map
11+
1. **Flat-file data store** for panic-attacker scan results,
12+
hardware-crash-team findings, and drift snapshots received via
13+
GitHub Actions `workflow_dispatch` events. Maintains a master
14+
index for historical analysis of repository health and compliance
15+
drift over time.
16+
2. **ABI dogfood** for the hyperpolymath Idris2 + Zig ABI standard
17+
(shared with `proven`, `burble`, `gossamer`). Lives in `ffi/zig/`.
18+
19+
## Module map
1120

1221
```
1322
verisimdb-data/
14-
├── scans/ # panic-attack scan results per repo
15-
├── hardware/ # hardware-crash-team findings
16-
├── drift/ # drift detection snapshots
17-
├── index.json # Master index of all stored data
18-
└── .github/workflows/ # Ingest workflows (receive results)
23+
├── scans/ # panic-attacker scan results per repo (data)
24+
├── dispatch/ # dispatch records (data)
25+
├── patterns/ # drift / scan pattern definitions (data)
26+
├── recipes/ # ingest and aggregation recipes (data)
27+
├── outcomes/ # outcome records (data)
28+
├── policy/ # storage and retention policy notes (data)
29+
├── health/ # health-state snapshots (data)
30+
├── index.json # master index of stored data (data)
31+
├── ffi/
32+
│ └── zig/ # Zig FFI implementation (ABI dogfood)
33+
├── scripts/ # ingest + index regen scripts (data)
34+
├── docs/
35+
│ └── decisions/ # ADRs
36+
└── .github/workflows/ # ingest + governance workflows
1937
```
2038

21-
## Data Flow
39+
## Data flow (Purpose 1)
2240

2341
```
2442
[Workflow Dispatch] ──► [Ingest Handler] ──► [JSON Validation] ──► [File Storage]
25-
26-
[Index Update] ──► [Query Ready]
43+
44+
[Index Regen on push] ──► [Query Ready]
2745
```
2846

29-
## Integration Points
47+
## Integration points
3048

31-
- **panic-attack**: Upstream scanner sending results
32-
- **hardware-crash-team**: Hardware failure analysis
33-
- **Drift detection**: Compliance change tracking
34-
- **Hyperpolymath CI/CD**: Automated data aggregation
49+
- **panic-attacker**: Upstream scanner sending results into `scans/`.
50+
- **hardware-crash-team**: Hardware failure analysis (Purpose 1 consumer).
51+
- **Drift detection**: Compliance change tracking against `scans/` history.
52+
- **verisimiser**: Consumes scan/drift data when wired to this repo as
53+
its sidecar storage. Not a runtime dependency.
54+
- **hyperpolymath CI/CD**: Automated data aggregation.

0 commit comments

Comments
 (0)