Skip to content
← The platform

Platform layer

Five jobs, five model assignments, and two rules that hold whichever you pick.

A route maps one job to one provider, one model and one pinned version, and it is held in configuration no model can read. The platform resolves every route at the start of a run, before a prompt is assembled: it looks up the assignment for each job, tests the resulting pairs against the self-review rule and the provider-diversity rule, and refuses to start when a rule cannot be met. Refusal is the designed behaviour — there is no fallback that quietly puts one provider on both sides of a review. Routes can also be pinned by data classification, so work touching fields marked personal resolves to a named provider or a private deployment, or does not resolve at all. Whichever route answered is written onto the proposal, the review and the artifact the run produced.

Jobs are assigned per role

Architecture, critique, coding, security review and documentation each resolve to their own assignment, and an assignment names a provider, a model and a model version rather than a vendor. That third field is the one that matters in a year: without a pinned version, a provider upgrading a model in place arrives as a change in behaviour with nothing in the record to account for it.

Proposer and critic come from different weights

The rule is applied to the resolved pair, not to the shape of the workflow: the platform compares the proposing route with the reviewing route before either one runs, and the same provider, model and version in both seats is a resolution failure rather than a warning somebody reads afterwards. That comparison catches the case a diagram hides, where two roles were pointed at one assignment months apart by different people.

Critical work uses two providers

Critical is a grade the policy engine assigns from what a change touches, so the requirement attaches to the change rather than to whichever workflow it arrived in. Different providers, not merely different models from one vendor: weights trained together tend to fail together, and a second read is worth having only where it can fail differently. A portfolio with one provider configured still runs everything else — the critical path is what stops, naming the second provider it could not find.

Model output is still a proposal

Whatever model is assigned, its output enters the same path: named operation, schema validation, policy evaluation, then approval where a rule requires one. A stronger model produces better proposals. It never produces wider permissions.

What this layer does

  • Routes each job — architecture, critique, coding, security review, documentation — to its own model.
  • Enforces that the builder and the reviewer are never the same model.
  • Requires two different providers on workflows graded critical.
  • Records which model produced each proposal, each review and each generated artifact.
  • Lets you reassign a job to a different model without touching Blueprints or capabilities.

What it does not do

No model here decides anything: whichever one produced an output, that output is a proposal that goes through the same validation, review and approval path. Foundariq also does not tie you to a single provider, and does not choose the assignments on your behalf.

Stop managing prompts. Start managing software strategy.

Connect your repositories. Let Foundariq understand what you have already built. Then tell it what your portfolio should build next.

Read-only to start · Your code stays in your GitHub · [email protected]