How reisidalt-f/reins-nlce works
Purpose and delivery modes
Reins is a Java/Maven natural-language compilation engine: Markdown specifications are the source language, and an LLM produces target code through constrained tools. It is delivered as a Maven plugin, CLI, and embeddable Java library. Entry surfaces are src/main/java/br/com/dizeno/reins/run/mojo/CompileMojo.java, src/main/java/br/com/dizeno/reins/run/cli/ReinsCli.java, and src/main/java/br/com/dizeno/reins/run/library/ReinsLibrary.java; ReinsRunner.java composes runtime execution.
Configuration and invocation boundary
Configuration is loaded and validated into a shared model before any filesystem or LLM work. src/main/java/br/com/dizeno/reins/run/config/ReinsConfigLoader.java, src/main/java/br/com/dizeno/reins/run/config/ConfigValidator.java, and src/main/java/br/com/dizeno/reins/run/config/ReinsConfig.java govern provider selection, scanning, targets, tooling permissions, tracking, and reasoning settings. Maven exposes compile, clean, and reasoning-note operations via CompileMojo.java, CleanMojo.java, and AddReasoningNoteMojo.java.
Source discovery and dependency ordering
Markdown inputs are discovered from configured roots, then parsed into a reference graph whose ordering drives compilation and contextual attachments. Key boundaries are src/main/java/br/com/dizeno/reins/source/scanner/CoderMdScanner.java, src/main/java/br/com/dizeno/reins/source/graph/MarkdownDependencyGraphBuilder.java, and src/main/java/br/com/dizeno/reins/source/graph/ProcessingOrderResolver.java. Reference resolution supports relative paths and test-to-main fallback, while path/domain types preserve source scope.
Compilation orchestration and incrementality
src/main/java/br/com/dizeno/reins/compilation/CompilationService.java coordinates a project run: construct source work, prefilter unchanged items, process in dependency order, invoke project-level reasoning where configured, and report results. Per-source work passes through the phase chain in src/main/java/br/com/dizeno/reins/compilation/pipeline/PhaseChain.java, including source read, tracking load, request construction, reasoning, outcome branching, and result printing. Output is written through src/main/java/br/com/dizeno/reins/compilation/OutputWriter.java.
Incremental state is a filesystem-backed manifest/fingerprint subsystem: src/main/java/br/com/dizeno/reins/compilation/tracking/CompilationTrackingStore.java, SourceFingerprintService.java, and RecompilationDecider.java. It determines whether source and mapped outputs can be skipped, and cleanup removes tracked artifacts rather than broadly deleting target paths.
Reasoning runtime and scripts
The reasoning service runs a multi-turn, stateful pipeline: initialize context, render reference/context messages, dispatch inference, parse directives, execute permitted tools, and complete or extend turns. The core is src/main/java/br/com/dizeno/reins/reasoning/DefaultReasoningService.java, planned/executed through ReasoningPipelineExecutor.java and phase implementations under src/main/java/br/com/dizeno/reins/reasoning/phase/.
FreeMarker scripts make prompt composition and phase behavior customizable, with classpath defaults in src/main/resources/reasoning/reasoning-pipeline.ftl, system-context.ftl, and context-build.ftl; runtime resolution is centered on src/main/java/br/com/dizeno/reins/reasoning/scripting/ScriptRegistry.java.
LLM provider boundary
Provider-neutral inference flows through src/main/java/br/com/dizeno/reins/reasoning/inference/InferenceService.java and inference/llm/service/DefaultLlmService.java. Adapter/registry abstractions isolate external services: Gemini at inference/llm/adapters/GeminiProviderAdapter.java and Ollama at OllamaProviderAdapter.java, with HTTP clients and retry policies beneath each provider. A stub adapter supports non-provider execution paths.
Tooling and security boundary
LLM output cannot directly mutate the project. Directives are parsed and routed through src/main/java/br/com/dizeno/reins/reasoning/ReasoningToolOperationHandler.java into tooling/ToolingService.java and operation handlers. File reads/writes/patches/deletes and script execution are constrained by base-path mappings and policy in tooling/file/BasePathResolver.java, FilePolicy.java, and global src/main/java/br/com/dizeno/reins/security/PathValidator.java. This is the critical containment boundary between untrusted model responses and the local filesystem.
Main entry points: CompilationService.java Compilation service · ReasoningPipelineExecutor.java Reasoning pipeline executor · ReinsConfigLoader.java Config loader · ReinsConfig.java Reins config
Components 25
Delivery surfaces
- Maven mojos · Compile, clean, and reasoning-note operations.
src/main/java/br/com/dizeno/reins/run/mojo/CompileMojo.java - CLI
src/main/java/br/com/dizeno/reins/run/cli/ReinsCli.java - Embeddable library
src/main/java/br/com/dizeno/reins/run/library/ReinsLibrary.java - Config loader · Loads shared runtime configuration.
src/main/java/br/com/dizeno/reins/run/config/ReinsConfigLoader.java - Config validator
src/main/java/br/com/dizeno/reins/run/config/ConfigValidator.java - Reins config · Provider, source, target, tooling, tracking, and reasoning settings.
src/main/java/br/com/dizeno/reins/run/config/ReinsConfig.java
Source planning
- Markdown scanner
src/main/java/br/com/dizeno/reins/source/scanner/CoderMdScanner.java - Reference graph builder · Builds Markdown references and contextual attachments.
src/main/java/br/com/dizeno/reins/source/graph/MarkdownDependencyGraphBuilder.java - Processing order
src/main/java/br/com/dizeno/reins/source/graph/ProcessingOrderResolver.java
Compilation
- Compilation service · Coordinates filtering, ordered compilation, reasoning, and reporting.
src/main/java/br/com/dizeno/reins/compilation/CompilationService.java - Tracking store · Filesystem-backed compilation state.
src/main/java/br/com/dizeno/reins/compilation/tracking/CompilationTrackingStore.java - Source fingerprints
src/main/java/br/com/dizeno/reins/compilation/tracking/SourceFingerprintService.java - Recompilation decider · Skips unchanged sources and mapped outputs.
src/main/java/br/com/dizeno/reins/compilation/tracking/RecompilationDecider.java - Compilation phase chain · Reads source, loads tracking, builds requests, branches outcomes, and prints results.
src/main/java/br/com/dizeno/reins/compilation/pipeline/PhaseChain.java - Output writer
src/main/java/br/com/dizeno/reins/compilation/OutputWriter.java
Reasoning runtime
- Reasoning service · Runs multi-turn context, inference, directives, and completion.
src/main/java/br/com/dizeno/reins/reasoning/DefaultReasoningService.java - Reasoning pipeline executor
src/main/java/br/com/dizeno/reins/reasoning/ReasoningPipelineExecutor.java - Script registry · Resolves customizable prompt and phase scripts.
src/main/java/br/com/dizeno/reins/reasoning/scripting/ScriptRegistry.java
Provider and tool boundary
- Inference service
src/main/java/br/com/dizeno/reins/reasoning/inference/InferenceService.java - LLM service · Dispatches Gemini, Ollama, or stub adapters.
src/main/java/br/com/dizeno/reins/reasoning/inference/llm/service/DefaultLlmService.java - Directive handler · Routes model directives into permitted operations.
src/main/java/br/com/dizeno/reins/reasoning/ReasoningToolOperationHandler.java - Tooling service · Executes constrained file and script operations.
- Base path resolver
- File policy
- Path validator · Global containment validation for local filesystem access.
src/main/java/br/com/dizeno/reins/security/PathValidator.java
Connections 27
- Maven mojos → Config loader: loads
- CLI → Config loader: loads
- Embeddable library → Config loader: loads
- Config loader → Config validator: validates
- Config validator → Reins config: produces
- Reins config → Markdown scanner: configures
- Reins config → Compilation service: configures
- Markdown scanner → Reference graph builder: Markdown inputs
- Reference graph builder → Processing order: references
- Processing order → Compilation service: ordered work
- Compilation service → Recompilation decider: prefilters
- Source fingerprints → Recompilation decider: change evidence
- Tracking store → Recompilation decider: tracked state
- Compilation service → Compilation phase chain: processes sources
- Compilation phase chain → Reasoning service: reasoning requests
- Compilation phase chain → Output writer: generated output
- Output writer → Tracking store: records artifacts
- Reasoning service → Reasoning pipeline executor: executes turns
- Script registry → Reasoning pipeline executor: renders phases
- Reasoning pipeline executor → Inference service: dispatches inference
- Inference service → LLM service: provider calls
- Reasoning pipeline executor → Directive handler: parsed directives
- Directive handler → Tooling service: permitted operations
- Tooling service → Base path resolver: resolves paths
- Tooling service → File policy: checks policy
- Base path resolver → Path validator: validates containment
- File policy → Path validator: enforces paths