Curvestone

Domain Model

Every job flows through a 6-dimension resolution pipeline.

Resolution Flow

Organisation
Identity & config
Case Type
e.g. Residential
Modifiers
e.g. Debt Consolidation
Depth
e.g. Full Check
Skills
7 resolved
Scoring
RAG

Dimensions

1

Organisation

Tenant identity, billing, and configuration overrides. Every API key is scoped to a single organisation.

2

Case Type

The base case type for the job. Determines which skills are executed — e.g. residential_mortgage, buy_to_let, bridging.

3

Modifiers

Variations that add or adjust skills on top of the base case type. For example, Debt Consolidation adds extra analysis steps to a Residential Mortgage job.

4

Depth

Controls how thorough the job is. Each depth level progressively increases the number of checks and the detail of analysis.

5

Skills

The resolved set of AI agents. Each skill reads documents, evaluates criteria, and produces findings independently.

6

Scoring

How results are evaluated. Pass/Fail for simple checks, or RAG (Green/Amber/Red) with remedial actions for deeper checks.

Skill composition

Example: Residential Mortgage + Debt Consolidation modifier at Full Check depth.

Suitability of AdviceIncome VerificationAffordability AssessmentProduct SelectionDisclosure & ConsentDebt Consolidation RationaleTotal Cost Comparison
Depth
Full Check
Scoring
RAG
Duration
~2-3 min

Discovery API

Use GET /config/dimensions to discover all case types, modifiers, depths, and scoring modes available to your organisation.

Request
terminal
bash
curl https://agent.curvestone.ai/config/dimensions \
-H "Authorization: Bearer $CURVESTONE_API_KEY" \
-H "Curvestone-Version: 2026-02-21"
Response
response.json
json
{
"case_types": [
{ "id": "residential_mortgage", "name": "Residential Mortgage" },
{ "id": "buy_to_let", "name": "Buy-to-Let" },
{ "id": "commercial_mortgage", "name": "Commercial Mortgage" }
],
"modifiers": [
{ "id": "debt_consolidation", "name": "Debt Consolidation", "applies_to": ["residential_mortgage"] },
{ "id": "interest_only", "name": "Interest Only", "applies_to": ["residential_mortgage", "buy_to_let"] }
],
"depths": [
{ "id": "admin_check", "name": "Admin Check" },
{ "id": "soft_check", "name": "Soft Check" },
{ "id": "full_check", "name": "Full Check" },
{ "id": "mortgage_club_check", "name": "Mortgage Club" }
],
"scoring": ["pass_fail", "rag"]
}