Skip to main content
IntentLang

Documentation

Everything from your first mission to the full specification.

Start with the mental model and a runnable tutorial, then go as deep as the reference. The language and its schemas are pre-1.0, but the compiler, CLI, and these docs are real today.

Start here

The mental model and your first ten minutes.

Understand the language

The syntax and the constructs you write.

Understand software

Scan, map, and reason about existing and AI-written code.

Build and verify

From source to proof, editor, and adapters.

Scale across a system

Navigate many missions and large changes.

Reference

The exhaustive specification and catalogs.

Ecosystem

How IntentLang fits the wider SkillsTech ecosystem.

Experimental and forward-looking

Designed and in progress. Read as direction, not a contract.

Core concepts

IntentLang has a small vocabulary. These are the terms you will see throughout the docs and examples.

Mission
A unit of intent: a goal, its inputs and outputs, and its guarantees.
Goal
The outcome a mission is meant to achieve, in plain language.
Requires
What must be true or available before the mission runs.
Input / Output
The typed values a mission consumes and produces.
Guarantees
Properties that must always hold when the mission completes.
Never
Forbidden behavior the implementation must never exhibit.
Constraints
Bounds and limits, such as a token time-to-live.
Target
A language the mission should compile toward, e.g. TypeScript.
Verify
The checks (types, tests, scans) that prove the guarantees hold.
Architecture
Services, APIs, events, data, dependencies, and ownership.

The Mission block

A Mission is the core unit of intent. It names a goal, declares what it requires, lists the guarantees that must hold, and names the targets it should compile toward.

CreateInvoice.intent
1mission CreateInvoice
2
3goal
4 Generate an invoice from approved orders
5
6why
7 Customers need accurate invoices that are auditable and never duplicated.
8
9requires
10 Customer
11 ApprovedOrders
12
13input
14 customer: Customer
15 orders: List<Order>
16 idempotencyKey: IdempotencyKey
17
18output
19 invoice: Invoice
20
21guarantees
22 invoice.total is never negative
23 duplicate invoices are not created
24 every invoice is auditable
25
26never
27 create invoice for unapproved order
28 expose payment token in logs
29
30target
31 TypeScript
32 DotNet
33 OpenAPI
34 Tests
35 Markdown
36 Mermaid
37
38verify
39 unit tests
40 duplicate prevention test
41 audit trail test
42 security scan

Three layers

The same mission can be written at three levels of precision: readable Human Intent, a more exact Typed Intent with semantic types and constraints, and compiler-ready Executable Intent that names a target and its checks. See all three side by side on the examples page.

Contracts & guarantees

Guarantees are not tests bolted on afterward. They are part of the program. Each guarantee is a property the implementation must never violate, and the one IntentLang aims to verify for you across every target.

  • • Guarantees read as plain, checkable statements.
  • • They travel with the Mission, not in a separate suite.
  • • Verification can be satisfied by types, tests, runtime checks, or proofs.

Semantic types

IntentLang favors semantic types over primitives. Writing email: Email instead of email: string lets the compiler and verification tools reason about meaning, not just shape. Planned built-in types include:

EmailMoneyCurrencyUrlUserIdAccountIdSecretTokenJwtDateDateTimeDurationPercentageFilePathRepositoryServiceNameApiEndpointEventNameDatabaseTable

Security model

Security is first-class. Fields can be marked so the compiler and verifier can enforce how they are handled.

Payment.intent
1field paymentToken: Secret
2 never log
3 never return to client
4 store encrypted
Sensitive
Handle with care; may appear in audits.
Secret
Never logged, never returned to a client.
Encrypted
Stored and transmitted encrypted.
PII
Personal data with handling obligations.
Internal
Not exposed outside the service boundary.
Public
Safe to expose.
AuditRequired
Access must be recorded.
RequiresPermission
Gated behind an explicit permission.

Targets

A single Mission can target multiple languages. The meaning stays the same; the generated implementation adapts to each target's idioms. Planned early targets include TypeScript, Python, .NET, Java, Go, and Rust, plus artifacts like OpenAPI, Markdown, and Mermaid diagrams.

The intent CLI

The intent command-line interface drives the pipeline from source to proof, deterministically and with no AI required. AI assistance is optional and traceable; every generated artifact records how it was produced.

intent check
Parse a .intent file and report diagnostics; gate a whole directory.
intent run
Evaluate the decisions against inputs, with a full trace.
intent test
Run the in-file test blocks (cases and scenarios).
intent build
Emit docs, the contract graph, a test plan, and .intent-proof.json.
intent graph
Emit the canonical Intent Graph (intent-graph-v1).
intent proof
Emit the .intent-proof.json artifact.
intent verify-diff
Gate a code change against the intent it must uphold.

These commands are proposed, not shipped. Track them on the roadmap.

Status & stability

IntentLang has no released compiler or CLI yet. This documentation describes the intended model and draft syntax. Nothing here is stable, and everything is subject to change before v1.

Want to follow along? Join the waitlist or check the roadmap.