A deterministic, reproducible LLM client for generating AI‑ready project documentation, scaffolds, configuration packs, and role‑specific prompt contexts.
The aim of this series of projects was to "bootstrap" with the MistralAI Chat Completion API, and an HTTP Proxy, enough of a "non-agentic" client to build an "agentic" client.
Why Foehn The name Mistral is a regional downslope wind in Europe, and the name of the high‑performance AI platform that powers my client.
Foehn winds occur globally under different regional names:
- Chinook — Rocky Mountains (USA/Canada)
- Zonda — Andes (Argentina)
- Halny — Tatra Mountains (Poland/Slovakia)
- Nor’wester — Southern Alps (New Zealand)
- Mistral — Southern France; a strong, dry downslope wind flowing from the Alps toward the Mediterranean
Although the Mistral is not a classic foehn in every meteorological treatment, it shares the same core dynamics: air descends, compresses, and warms, producing dry, gusty conditions.
FoehnAIBuilder is a lightweight MistralAI client that implements a REPL loop and manages LLM sessions.
It can clear, save and load the LLM context, and has plugins for accessing the local computer. The client has risk levels for plug-ins and has an interactive authorisation model.
Future extensions for the plugins include ML scoring the risk of a command line and a plug-in for web access using the Kagi API
It focuses on explicit control, repeatability, and audit‑friendly generation - avoiding hidden conventions or “magic”.
The project provides a structured way to define:
- Platforms (.NET, Java, Rust, Go, PHP, Python, etc.)
- Specialisations (ASP.NET MVC, ASP.NET WebAPI, C#, Azure, Java Spring, Hibernate, etc.)
- Roles (Architect, Developer, Tester, Refactorer, Reviewer)
- Integration working on tight integtration with Matt Pocock's skills
These are combined into deterministic configuration sets that can be loaded into an LLM context to produce consistent outputs across different environments and personas.
Each platform has a dedicated configuration file describing conventions, folder layouts, patterns, and expectations.
Examples:
.NET→ solution structure, DI patterns, logging, middleware, versioningJava→ Spring Boot conventions, Hibernate mappingsRust→ cargo layout, module patternsPython→ venv, packaging, dependency strategy
Roles define how the LLM should behave.
Examples:
- Architect → high‑level design, diagrams, flows, trade‑offs
- Developer → implementation detail, code correctness
- Tester → test plans, unit suites, integration tests
- Refactorer → improvements, simplification, readability
- Reviewer → critique, quality checks, anti‑patterns
FoehnAIBuilder merges platform + specialisation + role into a single reproducible configuration set.
This ensures the LLM receives a consistent persona and environment, eliminating drift between sessions.
Load a configuration set into your LLM session and immediately begin generating code, architecture, or reviews with the correct persona and platform context.
The project includes configuration for https://api.mistral.ai via appsettings.json.
Other providers can be added by extending the configuration model.
Add or edit platform configuration files under the Platforms/ folder.
Each file describes conventions, patterns, and expectations for that ecosystem.
Add role definitions under Roles/.
These describe tone, responsibilities, and behavioural constraints.
Add specialisation packs under Specialisations/.
These refine platform behaviour (e.g., ASP.NET WebAPI vs MVC).
Choose:
- Platform
- Specialisation
- Role
FoehnAIBuilder merges them into a single deterministic configuration set.
Paste the generated configuration into your LLM context (Mistral, Claude, ChatGPT, etc.).
Your LLM now behaves consistently according to the selected persona and platform.
With the configuration loaded, you can request:
- Architecture diagrams
- API designs
- Code generation
- Refactoring
- Reviews
- Test suites
- Documentation
All outputs follow the conventions defined in your packs.
FoehnAIBuilder/
├── FoehnAIBuilder.sln # Solution file
├── README.md # Project documentation
├── MistralAI.Cient # Chat completion API Client generated by Mistral
│
└── FoehnAIBuilder/ # Main project
├── plugins/ # Logic for assembling platform/role/specialisation packs
├── SystemMessages/ # Platform configuration packs (.NET, Java, Python, etc.)
├── Roles/ # Role definitions (Architect, Developer, Tester, etc.)
├── Skills/ # Platform specialisations (ASP.NET MVC, WebAPI, etc.)
├── appsettings.json # MistralAI config + provider settings
├── FoehnAIBuilder.csproj # Project file
└── Program.cs # Entry point / REPL-style runner