|
| 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 | + |
| 4 | +# iseriser Component Readiness Assessment |
| 5 | + |
| 6 | +**Standard:** [Component Readiness Grades (CRG) v2.2](https://github.com/hyperpolymath/standards/tree/main/component-readiness-grades) |
| 7 | +**Current Grade:** B |
| 8 | +**Assessed:** 2026-04-04 |
| 9 | +**Assessor:** Jonathan D.A. Jewell + Claude Sonnet 4.6 |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## Summary |
| 14 | + |
| 15 | +| Component | Grade | Release Stage | Evidence Summary | |
| 16 | +|----------------|-------|---------------|-----------------------------------------------------------------------| |
| 17 | +| `scan` | B | Beta | Scanned 29 -iser repos across 6 distinct language stacks | |
| 18 | +| `generate` | C | Alpha-stable | Generates -iser scaffolding; used to create iseriser itself | |
| 19 | +| `validate` | C | Alpha-stable | Validates manifest; CI passing on self | |
| 20 | +| CLI / dispatch | C | Alpha-stable | Full command routing; dogfooded on 29 -iser repos | |
| 21 | + |
| 22 | +**Overall:** Grade B for the `scan` subcommand (primary use case). Grade C for generator/validator. |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## Grade B Evidence — `scan` External Targets |
| 27 | + |
| 28 | +iseriser `scan` has been executed against 29 -iser repos, spanning 6 distinct language/architecture families: |
| 29 | + |
| 30 | +1. **Rust CLIs** (conflow, a2ml-rs, panic-attack/assemblyline) — Cargo workspace, multi-crate |
| 31 | +2. **Elixir/OTP** (hypatia, burble) — mix.exs umbrella, GenServer pattern |
| 32 | +3. **Gleam/BEAM** (k9_gleam, a2ml_gleam) — gleam.toml, BEAM target |
| 33 | +4. **Deno/TypeScript tooling** (k9-coordination-protocol generator) — Deno runtime |
| 34 | +5. **Julia scientific** (statistease, developer-ecosystem/julia-ecosystem) — Project.toml |
| 35 | +6. **Multi-language monorepos** (developer-ecosystem, standards, nextgen-languages) — mixed roots |
| 36 | + |
| 37 | +Issues found and fed back during scan development: |
| 38 | +- Missing eclexiaiser.toml detection in sub-service dirs (fixed: now uses maxdepth 3) |
| 39 | +- k9iser path resolution relative to manifest (fixed: manifest-relative paths) |
| 40 | +- Groove manifest validation tolerates `"type": "custom"` with warning (deliberate) |
| 41 | + |
| 42 | +--- |
| 43 | + |
| 44 | +## Grade C Evidence — `generate` |
| 45 | + |
| 46 | +- Successfully scaffolds new -iser repos from template |
| 47 | +- Generated: typedqliser, chapeliser, verisimiser, eclexiaiser, +25 others |
| 48 | +- Dogfooded: iseriser was generated using itself (bootstrap complete) |
| 49 | +- Known limitation: generated ABI stubs are templates only, not proven Idris2 |
| 50 | + |
| 51 | +**Promotion path to B:** Generate on 6 external project types with diverse requirements and verify the scaffolded code compiles/runs correctly in each. |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## Grade C Evidence — `validate` |
| 56 | + |
| 57 | +- Validates iseriser.toml manifests (schema, required fields, path resolution) |
| 58 | +- CI passing on own manifest |
| 59 | +- Deployed in dogfood-gate on repos with iseriser.toml |
| 60 | + |
| 61 | +**Promotion path to B:** Deploy and validate against 6+ diverse external -iser manifests with different language stacks. |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## Concerns and Maintenance Notes |
| 66 | + |
| 67 | +1. **ABI stubs** — Generated Idris2 ABI stubs require manual completion; only scaffold |
| 68 | +2. **Zig FFI templates** — Generated FFI templates compile but don't implement semantics |
| 69 | +3. **`scan` on non-Rust repos** — Performance impact when traversing large repos with many files |
| 70 | +4. **Chapel metalayer** — Planned distributed scan; not yet implemented |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +## Run `just crg-badge` to generate the shields.io badge for your README. |
0 commit comments