Foundgine documentation
This directory contains the current Foundgine documentation, covering both implementations, released together as 2.2.1: .NET and Java. The two share the same architecture and vocabulary; pages below describe that shared model unless a section calls out a language-specific difference. See Current status for exactly what is and isn’t ported to Java today.
The repository itself is the source of truth. Documentation describes implemented architecture and tested behavior; it does not use old release notes or historical benchmark snapshots as current product guidance.
Read in order
This is the reading path — each page ends with a link to the next one, so you can also just start at Getting started and follow the links.
- Getting started — build the repository and run the main sample.
- Why Foundgine — the problem, and the boundary it draws.
- What Foundgine is designed for — what, how, where it fits, and the categories of applications it targets.
- Architecture — the intent-to-provider pipeline.
- Metadata → Semantics — what exists versus what it means.
- Mapping and connections — how the semantic model attaches to the physical/EF model.
- Open Intent API — typed, dynamic, and JSON ways to express intent.
- Lexical grounding — resolving free-form language against the semantic contract.
- Grounding decisions — telling a competing meaning apart from routing noise, and when Foundgine must ask instead of guess.
- Authorization — what a caller may exercise, and under what conditions.
- Security — the untrusted-input boundary and fail-closed rules.
- Runtime — how a request actually moves through resolution, planning, and execution.
- AOT — moving metadata discovery to compile time.
- Public API — the shape of the day-to-day application surface.
- AI agents — exposing capabilities to agents and MCP without granting database authority.
- PostgreSQL E2E — the real database integration path.
- Testing — how the boundaries above are proven, not just asserted.
- Current status — what the active code and tests support today.
- Roadmap — what’s next, and what’s deliberately out of scope.
Package-specific architecture and usage guidance lives in the README.md of every project under src/csharp/ and src/java/. Java sample tutorials live alongside each sample under src/java/samples/*.
Documentation rules
The documentation follows four rules:
- Current code wins. If prose disagrees with source or tests, the source/tests are authoritative.
- Implemented and planned are separated. A planned feature is not documented as a shipped capability.
- Transport and provider boundaries stay explicit. GraphQL, MCP, JSON, AI, and SQL are adapters/providers around the semantic core.
- Historical material stays out of the active guide. Release notes, old benchmark runs, and implementation diaries are not part of the current documentation set.