Deterministic Tooling
PLANNED FOR v0.7.0
This feature is not yet implemented. This page describes the planned deterministic tooling system for AILANG.
Design Document: deterministic-tooling.md
Overview
Deterministic tooling provides AI-friendly commands for code transformation that produce consistent, predictable results.
Planned Commands
Canonical Normalization
ailang normalize file.ail
Rewrites code to canonical form:
- Consistent whitespace and formatting
- Standardized import ordering
- Deterministic AST serialization
Import Suggestion
ailang suggest-imports file.ail
Analyzes undefined identifiers and suggests imports:
- Scans stdlib for matching exports
- Checks project modules
- Outputs machine-readable suggestions
Deterministic Edits
ailang apply plan.json file.ail
Applies structured edit plans:
- JSON-defined transformations
- Atomic all-or-nothing application
- Reproducible across runs
Training Data Export
ailang run --emit-trace jsonl file.ail
Exports execution traces for AI training:
- Step-by-step evaluation
- Type information at each step
- Effect tracking
Current Status
What works today:
- Basic formatting via
go fmton generated Go code - Manual import management
- Standard execution (no trace export)
What's planned:
- Native AILANG formatter
- Intelligent import suggestions
- Structured edit application
- JSONL trace export for training
Design Goals
- Reproducibility: Same input always produces same output
- Machine-Readable: JSON/JSONL formats for AI consumption
- Composability: Tools can be chained in pipelines
- Minimal Dependencies: Pure Go implementation
Use Cases
- AI Self-Training: Export execution traces to improve code generation
- CI/CD: Enforce canonical formatting in pipelines
- Refactoring: Apply large-scale changes via edit plans
- Code Review: Normalize before diff to reduce noise