What Forge does
Restore
Resolve dependencies from
kairo.toml and write forge.lock.Check
Parse, resolve names, and type-check without producing artifacts.
Build
Compile
.ak source to a runnable or distributable artifact.Test
Run tests declared in
tests/ and report results.Package
Produce a distributable library artifact.
Publish
Push a package to its configured registry.
Typical workflow
1
Create a package
Start with a
kairo.toml, a src/ folder, and at least one .ak file.2
Restore dependencies
forge restore reads the manifest and writes forge.lock.3
Check while iterating
forge check gives you fast feedback: parse, resolve, type-check.4
Build
forge build produces an artifact for Pulse to run.5
Test
forge test runs any tests in tests/.Command overview
See the Forge CLI reference for every flag and diagnostic code.
Determinism
Forge is deterministic by design:- Manifest is authoritative for package identity and dependencies.
forge.lockcaptures every resolved version, direct and transitive.- Given the same source, manifest, and lock, Forge produces the same artifact.
- Filesystem paths never override declared module names.
Determinism matters because Kairo targets business software. You want the build on your laptop, your CI, and your teammate’s machine to produce the same result.
Diagnostics
Forge emits structured diagnostics with a code, a location, and a message. Diagnostic codes are stable identifiers you can search for and pin in CI.Relationship to Pulse
Forge builds Kairo packages. Pulse runs the compiled artifacts of application packages. They are separate tools with different responsibilities:- Forge owns compile-time correctness.
- Pulse owns runtime execution.
Next steps
Forge CLI reference
Every command, every flag, every diagnostic code.
Pulse
Running compiled Kairo applications.
