Skip to content

Commit c5a038f

Browse files
hyperpolymathclaude
andcommitted
docs: add TOPOLOGY.md
Document purpose, module structure, and data flow for this -iser tool. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a26bf3b commit c5a038f

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

TOPOLOGY.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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+
# TOPOLOGY.md — iseriser
4+
5+
## Purpose
6+
7+
iseriser is the meta-iser: it generates complete new -iser project scaffolds from a language description manifest. Given a target language or system name and its characteristics, iseriser emits a fully-structured RSR-compliant repository with the standard Rust CLI skeleton, Idris2 ABI stubs, Zig FFI bridge, manifest parser, codegen module, justfile, and all required workflow files. iseriser is the bootstrap tool for the entire -iser family and is used to create new isers consistently and quickly.
8+
9+
## Module Map
10+
11+
```
12+
iseriser/
13+
├── src/
14+
│ ├── main.rs # CLI entry point (clap): init, validate, generate, info
15+
│ ├── lib.rs # Library API
16+
│ ├── manifest/mod.rs # iseriser.toml parser (target language description)
17+
│ ├── codegen/mod.rs # Full -iser scaffold generation
18+
│ └── abi/ # Idris2 ABI bridge stubs
19+
├── examples/ # Worked examples
20+
├── verification/ # Proof harnesses
21+
├── container/ # Stapeln container ecosystem
22+
└── .machine_readable/ # A2ML metadata
23+
```
24+
25+
## Data Flow
26+
27+
```
28+
iseriser.toml manifest
29+
30+
┌────▼────┐
31+
│ Manifest │ parse + validate target language description (name, domain, backend)
32+
│ Parser │
33+
└────┬────┘
34+
│ validated language spec
35+
┌────▼────┐
36+
│ Analyser │ determine required modules, ABI/FFI shape, CLI subcommands
37+
└────┬────┘
38+
│ intermediate scaffold plan
39+
┌────▼────┐
40+
│ Codegen │ emit complete <language>iser/ project tree
41+
│ │ (src/, ffi/zig/, src/abi/, justfile, workflows, .machine_readable/)
42+
└─────────┘
43+
```

0 commit comments

Comments
 (0)