The README makes claims. This file backs them up.
Claim 1: "Visual wiring layer for multi-repo component management with aspect tagging and scenario comparison"
How it works: Reposystem scans local repository clones (src/importers/) to extract metadata (deps, APIs, names). The src/graph.rs module builds a directed graph where nodes are repositories and edges are dependencies or artifact flows. Each edge has a channel (artifact, runtime, source) and evidence pointing to CI config or Cargo.toml lines. The aspect overlay (src/commands/aspect.rs) applies concern-based views (security, reliability, supply-chain) where each node/edge gets a weight. The TUI (src/tui.rs) and web UI (web/) render these graphs interactively; the web UI supports force-directed layout, ER mode, and accessibility (keyboard navigation, zoom, contrast).
Caveat: Graph discovery is file-pattern-based (parsing Cargo.toml, package.json) and may miss implicit dependencies. Aspect weights are manual annotations, not machine-learned; a security weight of "3/3" requires human judgment. For high-stakes decisions, pair with formal risk analysis.
Evidence: src/importers/cargo.rs and src/importers/package.rs parse dependency files; src/graph.rs defines node/edge/aspect data model; web/graph.js implements the interactive visualization.
Claim 2: "Scenario comparison shows how switching providers changes security, reliability, and supply-chain metrics"
How it works: The src/commands/scenario.rs module stores named configurations of the graph. A scenario is a snapshot: select which provider implementation each consumer uses for a given component (e.g., "use local podman" vs "use external docker"). The scenario diff command computes differences between two scenarios (how many edges changed, which nodes are affected) and re-evaluates aspect metrics on the new configuration. The src/commands/export.rs module renders side-by-side comparisons showing before/after aspect scores (security 7/10 → 10/10, reliability 10/10 → 8/10).
Caveat: Aspect metric recalculation is deterministic but depends on accurate initial weights. If weights are unreliable, diffs are misleading. Integration with VeriSimDB or a formal risk database would improve fidelity.
Evidence: src/commands/scenario.rs stores and diffs scenarios; src/commands/export.rs computes metric deltas; the TUI shows side-by-side comparison view in the "SCENARIO COMPARISON" panel (see README mock UI).
| Technology | Learn More |
|---|---|
Rust |
Core graph engine, TUI, exporters |
ReScript |
Type-safe data model |
Deno |
Web UI runtime (no Node/npm) |
Nickel |
Configuration parsing |
Guile Scheme |
State metadata (.machine_readable/descriptiles/*.a2ml files) |
|
Note
|
Paths verified against actual repository tree. Fabricated paths from an earlier draft have been removed. |
| Path | Purpose |
|---|---|
|
CLI entry point: scan, list, view, export, group, edge, tag, scenario commands |
|
Library crate root; re-exports public API |
|
Core graph data model: Node (repo), Edge (dependency), Aspect (concern), Scenario |
|
Repository discovery: reads Cargo.toml, package.json, graph.toml to populate the graph |
|
Configuration parsing (Nickel/TOML) |
|
Ratatui-based terminal interface (panels: groups, graph, aspects) |
|
VeriSimDB integration for temporal aspect tracking and query |
|
Ada specification stub for safety-critical intervention hooks |
|
Idris2 ABI type definitions (Idris2-ABI + Zig-FFI architecture) |
|
One file per CLI subcommand: scan, view, export, group, edge, tag, scenario, aspect, apply, plan, slot, weak_links, completions, config |
|
Static web UI: HTML/CSS/JS, no build step required |
|
Single-page app shell |
|
Force-directed graph layout, ER mode, aspect overlays, accessibility |
|
UI stylesheet |
|
Sample export for offline exploration |
|
Formal specifications |
|
Graph node/edge/aspect schema and invariants |
|
Vocabulary and conceptual model |
|
Standalone Ratatui TUI crate (legacy Ada UI under |
|
ReScript + Deno web GUI sub-project |
|
Zig FFI implementation (C-ABI bindings) |
|
Integration and end-to-end tests |
|
Criterion benchmarks |
|
cargo-fuzz targets and seed corpus |
|
CI validation scripts (SPDX, SHA-pin, CodeQL permissions) |
|
Maintenance scripts (gitlink-drift.jl, install-desktop.sh) |
|
Nickel workspace config (reposystem.ncl, contracts.ncl) |
|
CUE schema definitions |
|
Unix man page (reposystem.1) |
|
User documentation and governance policy |
| Project | Integration | | panic-attacker | Feeds assail findings into aspect weights (security concern) | januskey | Could track scenario rollback as reversible operation | proof-of-work | Z3 verifies scenario correctness (no circular deps) | vql-ut | Queries graph as VQL-UT dataset with temporal aspect tracking