Agent skill
AILANG
Write AILANG code. ALWAYS run 'ailang prompt' first - it contains the current syntax rules and templates.
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:
ailang prompt
This is the source of truth for AILANG syntax. Do not guess at syntax.
Session Start
# 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:
# 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:
# 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:
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
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
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-promptfor full toolchain reference (debugging, tracing, eval, chains, coordinator) - Run
ailang replfor 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
ailang messages send user "Task completed" --from "my-agent" --title "Status"
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
AILANG Debug
Debug AILANG code errors. Use when you encounter type errors, parse errors, or runtime failures in AILANG programs.
AILANG Inbox
Cross-agent communication system with semantic search and GitHub sync. Check messages, find similar content, deduplicate, and sync with GitHub Issues for AI workflows across sessions.
handoff
Compact the current conversation into a handoff document for another agent to pick up.
obsidian-vault
Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.
scaffold-exercises
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
edit-article
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
Didn't find tool you were looking for?