Skip to content

Latest commit

 

History

History
90 lines (69 loc) · 5.68 KB

File metadata and controls

90 lines (69 loc) · 5.68 KB

Reposystem — Show Me The Receipts

The README makes claims. This file backs them up.

Claims Substantiation

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 Choices

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)

File Map

Note
Paths verified against actual repository tree. Fabricated paths from an earlier draft have been removed.
Path Purpose

src/main.rs

CLI entry point: scan, list, view, export, group, edge, tag, scenario commands

src/lib.rs

Library crate root; re-exports public API

src/graph.rs

Core graph data model: Node (repo), Edge (dependency), Aspect (concern), Scenario

src/scanner.rs

Repository discovery: reads Cargo.toml, package.json, graph.toml to populate the graph

src/config.rs

Configuration parsing (Nickel/TOML)

src/tui.rs

Ratatui-based terminal interface (panels: groups, graph, aspects)

src/verisimdb.rs

VeriSimDB integration for temporal aspect tracking and query

src/intervention.ads

Ada specification stub for safety-critical intervention hooks

src/abi/Types.idr

Idris2 ABI type definitions (Idris2-ABI + Zig-FFI architecture)

src/commands/

One file per CLI subcommand: scan, view, export, group, edge, tag, scenario, aspect, apply, plan, slot, weak_links, completions, config

web/

Static web UI: HTML/CSS/JS, no build step required

web/index.html

Single-page app shell

web/app.js

Force-directed graph layout, ER mode, aspect overlays, accessibility

web/styles.css

UI stylesheet

web/export.json

Sample export for offline exploration

spec/

Formal specifications

spec/DATA-MODEL.adoc

Graph node/edge/aspect schema and invariants

spec/CONCEPTS.adoc

Vocabulary and conceptual model

tui/

Standalone Ratatui TUI crate (legacy Ada UI under tui/legacy-ada/)

gui/

ReScript + Deno web GUI sub-project

ffi/zig/

Zig FFI implementation (C-ABI bindings)

tests/

Integration and end-to-end tests

benches/

Criterion benchmarks

fuzz/

cargo-fuzz targets and seed corpus

hooks/

CI validation scripts (SPDX, SHA-pin, CodeQL permissions)

scripts/

Maintenance scripts (gitlink-drift.jl, install-desktop.sh)

config/

Nickel workspace config (reposystem.ncl, contracts.ncl)

schemas/

CUE schema definitions

doc/

Unix man page (reposystem.1)

docs/

User documentation and governance policy

Dogfooted Across The Account

| 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

Readiness

CRG Grade: C (Beta) - Graph model stable, TUI and web UI working, scenario diffing validated on 47-repo ecosystems, needs formalized aspect weighting and cross-repo vulnerability chain detection.