Foundgine

Foundgine Proof Milestones

HomeDirectionMilestones

This is the execution roadmap for proving the Foundgine thesis. It intentionally prioritizes one complete vertical slice over broad feature coverage.

Milestone 0 — Real execution

Goal: prove the existing lower half works.

Domain
→ Metadata
→ Dynamic Planner
→ QueryPlan
→ ProviderPlan
→ SQL
→ real database
→ Result

Acceptance criteria

Status: active proof exists in samples/Foundgine.Samples.Banking.


Milestone 1 — Semantic domain

Goal: turn metadata into a semantic application model.

Add descriptors for:

Entity
Identity
Field
Relationship
Search capability
Action
Policy

The semantic model must be protocol-neutral.

Acceptance test

Given the Banking domain, Foundgine can enumerate:

Customer
 ├── identity: Id
 ├── fields: Name
 ├── relationship: Accounts
 └── actions: <none initially>

Account
 ├── identity: Id
 ├── fields: Balance
 └── relationship: Transactions

Transaction
 ├── identity: Id
 └── fields: Amount

Important: start with hand-authored metadata if necessary. Do not block the product proof on a source generator.


Milestone 2 — Semantic resolution

Goal: map ambiguous human language to domain identities.

Examples:

"Ada Lovelace"
"account 10"
"her checking account"
"the last transaction"

into explicit domain references.

Acceptance criteria

The resolver returns:

The resolver must never silently invent an identity.


Milestone 3 — Read intent

Goal: prove natural-language-to-read-plan without building a generic AI framework.

Natural language
      ↓
Intent
      ↓
Resolve
      ↓
Semantic query
      ↓
Foundgine QueryPlan
      ↓
ProviderPlan
      ↓
Database
      ↓
Evidence

The LLM is an optional reasoning client. Foundgine owns the constrained semantic representation and execution.

Acceptance example

Find Ada’s last five transactions.

Expected plan:

Resolve Customer
→ Resolve Account through Customer relationship
→ Query Transaction ordered by transaction identity/time
→ Limit 5

Milestone 4 — Domain actions

Goal: expose explicit business operations rather than arbitrary method invocation.

Example:

IssueRefund(amount)
SuspendAccount(reason)
ChangeTier(tier)

Each action gets a descriptor:

Name
Target entity
Inputs
Mutating?
Authorization requirements
Side effects
Verification requirements

Safety rule

An agent can select only actions exposed by the semantic model.

It cannot invent arbitrary C# method calls.


Milestone 5 — Policy / authorization

Goal: authorization becomes part of planning.

Intent
 ↓
Resolve
 ↓
Policy
 ↓
Plan

Example:

IssueRefund
requires:
  Refund permission
  Customer ownership
  amount <= configured limit

Denied plans should be explicit and explainable.


Milestone 6 — Preview and approval

Goal: mutations are inspectable before execution.

PLAN
 ↓
PREVIEW
 ↓
APPROVE
 ↓
EXECUTE

A preview should identify:

This is a core safety mechanism, not a UI feature.


Milestone 7 — Verification and evidence

Goal: every important execution can prove what happened.

Execute
 ↓
Re-read affected state
 ↓
Verify expected result
 ↓
Produce evidence

Evidence should capture enough information to explain:

What was resolved?
Why was it selected?
What policy was applied?
What plan ran?
What provider executed?
What changed?
How was the result verified?

Milestone 8 — MCP adapter

Goal: expose the proven semantic API to external agents.

MCP is an adapter, not Foundgine’s core.

Claude / ChatGPT / Cursor
           ↓
          MCP
           ↓
Foundgine Semantic API
           ↓
Foundgine Runtime

Start with a minimal tool surface:

discover
resolve
query / plan
preview
execute
verify / evidence

Do not create dozens of entity-specific MCP tools.


Milestone 9 — Additional execution targets

Only after the first vertical slice works:

Structured data
Domain actions
Semantic retrieval
External data

These are execution targets behind a common planning model.

Do not build all four at once.


Milestone 10 — Compile-time domain compiler

Only after the semantic model and runtime are proven should Roslyn generation become a major focus.

The compiler should generate:

It should not generate a fixed planner for future natural-language requests.

Dynamic intent remains a runtime concern.


Definition of done for the first real proof

The first convincing Foundgine demo is one test that can execute:

"Find Ada's checking account."
        ↓
resolve Customer
        ↓
resolve Account
        ↓
policy check
        ↓
plan
        ↓
execute
        ↓
evidence

and:

"Refund Ada's last transaction."
        ↓
resolve Customer
        ↓
resolve Transaction
        ↓
authorize IssueRefund
        ↓
build mutation plan
        ↓
preview
        ↓
approve
        ↓
execute
        ↓
verify
        ↓
evidence

If these work against a real database and real domain action, the thesis has been proven.

Everything else is expansion.