Agent skill

AILANG

Write AILANG code. ALWAYS run 'ailang prompt' first - it contains the current syntax rules and templates.

Stars 2
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/sunholo-data/ailang_bootstrap/tree/stable/skills/ailang

SKILL.md

AILANG

BEFORE YOU WRITE ANY CODE

Run this command first - it outputs the current syntax rules and templates:

bash
ailang prompt

This is the source of truth for AILANG syntax. Do not guess at syntax.

Session Start

bash
# 1. Check for messages from other agents
ailang messages list --unread

# 2. Load current syntax (CRITICAL!)
ailang prompt

# 3. Verify AILANG is installed
ailang --version

# 4. If debugging, tracing, or toolchain help needed:
#    ailang devtools-prompt

Development Workflow

┌──────────────────────────────────────┐
│ 1. Run: ailang prompt                │
│    Read the template and examples    │
└──────────────────────────────────────┘
                 ↓
┌──────────────────────────────────────┐
│ 2. Write code following template     │
│    module myproject/mymodule         │
│    export func main() -> () ! {IO}   │
└──────────────────────────────────────┘
                 ↓
┌──────────────────────────────────────┐
│ 3. Type-check (fast feedback)        │
│    ailang check file.ail             │
└──────────────────────────────────────┘
                 ↓
┌──────────────────────────────────────┐
│ 4. Run with capabilities             │
│    ailang run --caps IO --entry main │
└──────────────────────────────────────┘
                 ↓
        Fix errors, repeat

CLI Quick Reference

Command Purpose
ailang prompt Load syntax (DO THIS FIRST!)
ailang devtools-prompt Full toolchain reference (debugging, tracing, eval, chains, coordinator)
ailang check file.ail Type-check without running
ailang run --caps IO --entry main file.ail Run program
ailang repl Interactive testing
ailang builtins list --verbose --by-module Full stdlib docs with examples
ailang examples search "query" Find working code examples (v0.6.2+)
ailang examples show NAME View example with expected output

Exploring the Standard Library

The CLI is the source of truth. Always use ailang builtins list --verbose for current, accurate documentation:

bash
# SOURCE OF TRUTH: Full docs with examples and signatures
ailang builtins list --verbose --by-module

# Search for specific module (e.g., array functions)
ailang builtins list --verbose --by-module | grep -A 30 "std/array"

# Search for specific function
ailang builtins list --verbose | grep -A 10 "httpGet"

The CLI output shows the authoritative documentation:

  • Usage: Exact import statement (import std/fs (readFile))
  • Parameters: What each argument expects
  • Returns: What the function returns
  • Examples: Working code snippets

Note: This skill provides guidance, but ailang prompt and ailang builtins list --verbose are always more up-to-date.

Finding Working Examples (v0.6.2+)

Search 97 working code examples directly from the CLI:

bash
# Search for examples by keyword (flags BEFORE query!)
ailang examples search "pattern matching"
ailang examples search --limit 5 "recursion"

# View a specific example with metadata and expected output
ailang examples show adt_option
ailang examples show fold_reduce --expected

# List examples by tag
ailang examples list --tags adt
ailang examples list --tags recursion

# See all available tags
ailang examples tags

Search scoring: Tag match (1.0) > Description (0.95) > Content (0.80) > Partial (0.60-0.70)

When to use:

  • Learning AILANG patterns: ailang examples list --tags recursion
  • Checking syntax: ailang examples search "match"
  • Finding working code: ailang examples show NAME --run

Flags MUST come before filename:

bash
ailang run --caps IO --entry main file.ail   # Correct
ailang run file.ail --caps IO                # WRONG

Capabilities

Cap Purpose Example Functions
IO Console I/O println (prelude), print (needs import)
FS File system readFile, writeFile
Net HTTP requests httpGet, httpPost, httpRequest
Clock Time functions now, sleep
AI LLM calls call(prompt)
Rand Random numbers rand_int, rand_float
Env Environment vars getEnv, getEnvOr
Debug Debug logging log, check

Practical Examples

Offer to create these working examples for users:

Example What It Does Run Command
AI Debate AI models debate a topic ailang run --caps IO,Env,AI --ai claude-haiku-4-5 --entry main ai_debate.ail
Ask AI Simple CLI Q&A tool ailang run --caps IO,AI --ai claude-haiku-4-5 --entry demo ask_ai.ail
File Summarizer Summarize files with AI ailang run --caps IO,FS,AI --ai gpt5-mini --entry demo summarize_file.ail
Game of Life Conway's simulation ailang run --caps IO --entry main game_of_life.ail

AI Debate Example

ailang
module my_debate
import std/ai (call)
import std/ai (call)

export func main() -> () ! {IO, AI} {
  println("=== AI Debate ===");
  let optimist = call("Argue FOR AI benefits in 2 sentences");
  println("Optimist: " ++ optimist);
  let skeptic = call("Argue AGAINST AI risks in 2 sentences");
  println("Skeptic: " ++ skeptic)
}

File Summarizer Example

ailang
module summarizer
import std/ai (call)
import std/fs (readFile)

export func main(path: string) -> () ! {IO, FS, AI} {
  let content = readFile(path);
  let summary = call("Summarize in 3 bullets: " ++ content);
  println(summary)
}

When Stuck

  • Run ailang devtools-prompt for full toolchain reference (debugging, tracing, eval, chains, coordinator)
  • Run ailang repl for interactive testing
  • See common_patterns.md for patterns
  • See cli_reference.md for full CLI docs
  • See editor_support.md for VS Code, Vim, Neovim setup
  • Check the ailang-debug skill for error fixes

Done? Notify

bash
ailang messages send user "Task completed" --from "my-agent" --title "Status"

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results