AI Native Lang

Post-Release Roadmap (Immediate)

This roadmap captures immediate engineering priorities following the first public GitHub release. It is intentionally narrow and contract-driven.

Post-Release Roadmap (Immediate)

This roadmap captures immediate engineering priorities following the first public GitHub release. It is intentionally narrow and contract-driven.

GitHub-ready issue draft stubs for this roadmap live in docs/issues/. The operator-grade sequencing and breakage-control plan lives in docs/NO_BREAK_MIGRATION_PLAN.md.

Recently shipped (through v1.3.3 — keep docs/tests aligned)

Use this as the done baseline when opening new work; do not re-plan these without an explicit new requirement.

| Area | Shipped | Pointers | |------|---------|----------| | Release line | PyPI / runtime ainl 1.3.3 (pyproject.toml, RUNTIME_VERSION, CITATION.cff) — see docs/RELEASE_NOTES.md / docs/CHANGELOG.md | docs/RELEASING.md | | Hybrid interop + S hybrid | LangGraph / Temporal wrappers, validate_ainl.py --emit langgraph|temporal, langchain_tool adapter, S hybrid langgraph|temporal for minimal_emit / planners | docs/HYBRID_GUIDE.md, docs/AINL_SPEC.md §2.3.1, runtime/wrappers/, examples/hybrid/, docs/hybrid/OPERATOR_RUNBOOK.md, docs/PACKAGING_AND_INTEROP.md | | CI benchmark regression | benchmark-regression prefers committed tooling/benchmark_*_ci.json on baseline SHA; Python 3.10 jobs; make benchmark-ci echoes PYTHON | .github/workflows/ci.yml, BENCHMARK.md § CI regression baselines, docs/benchmarks.md § CI | | Runtime label resolution (includes + graph) | Bare subgraph targets in If / Loop / While / Call are qualified with the alias/ prefix from the runtime stack when labels keys are merged as alias/child | runtime/engine.py (_resolve_label_key), tests/test_demo_enforcer.py (test_graph_mode_nested_if_resolves_bare_child_labels) | | Access-aware memory (opt-in) | modules/common/access_aware_memory.ainl: LACCESS_READ, LACCESS_WRITE, LACCESS_LIST, LACCESS_LIST_SAFE; module header documents graph-mode caveats for LACCESS_LIST (ForEach IR) vs graph-safe LACCESS_LIST_SAFE | modules/common/access_aware_memory.ainl, modules/common/README.md, docs/RELEASE_NOTES.md § v1.2.4 (current release v1.3.3) | | Compile-time include | Merge included .ainl into parent IR under alias/LABEL ids; strict ENTRY / EXIT_* contracts; path resolution + cycle checks | tests/test_includes.py, modules/common/retry.ainl, modules/common/timeout.ainl, root README Includes & modules, docs/WHAT_IS_AINL.md | | Structured diagnostics (Phase 3 core) | Native Diagnostic + CompilerContext; merge dedup (native wins); CLI --diagnostics-format (auto / plain / rich / json); optional rich stderr | compiler_diagnostics.py, ainl-validate, docs/INSTALL.md, tests/test_diagnostics.py | | OpenClaw intelligence + ops (v1.2.8–v1.3.3) | run_intelligence.py (context, summarizer, consolidation, auto_tune_ainl_caps), tooling/intelligence_budget_hydrate.py, profiles + env templates, OPENCLAW_AINL_GOLD_STANDARD.md / OPENCLAW_HOST_AINL_1_2_8.md, embedding pilot + startup token clamps, graph-safe intelligence fixes | scripts/run_intelligence.py, intelligence/, docs/operations/OPENCLAW_*.md, WHITEPAPERDRAFT.md §10.5 / §13.5 | | Graph visualizer CLI | ainl visualize / ainl-visualizeMermaid from ir["labels"]; subgraph clusters per include alias; synthetic Call → entry edges + %% comment | scripts/visualize_ainl.py, docs/architecture/GRAPH_INTROSPECTION.md §7, root README Visualize your workflow | | Strict literal / dataflow | Quoted string literals in read positions where required; J "payload" style for strict dataflow | docs/RUNTIME_COMPILER_CONTRACT.md, docs/CONFORMANCE.md, canonical lint / strict tests |


Active priorities (next)

1) Canonical strict surface expansion (contract-first)

  • Expand strict-valid surface only through explicit, compiler-owned contracts.
  • Any strict expansion must be reflected in:
    • tooling/effect_analysis.py (adapter/effect contract)
    • tooling/artifact_profiles.json (artifact expectations)
    • conformance/runtime tests
  • No wildcard strict allowances.

2) Legacy and non-strict artifact migration

  • Reduce non-strict-only and legacy-compat artifacts over time via intentional migration.
  • Promote artifacts to strict-valid only after:
    • strict compile pass
    • runtime behavior validation
    • docs/profile updates
  • Keep compatibility artifacts explicitly labeled while migration is incomplete.

3) Compiler-structured diagnostics — remaining scope

Status: Core path shipped (validator, visualizer, merge dedup, CLI format flags). Remaining (optional): additional strict diagnostic sites, language-server polish, regression tests that lock span precision for new sites.

  • Increase structured diagnostic coverage where gaps remain (span, lineno, label_id, node_id, etc.).
  • Keep language server diagnostic heuristics strictly as backward-compat fallback.
  • Add tests that prevent diagnostic location regressions and fake precision.

4) Compatibility-path retirement (incremental)

  • Continue reducing compatibility-only execution paths where canonical behavior already exists.
  • Maintain backward compatibility wrappers during transition but avoid adding new semantics there.
  • Require explicit deprecation notes before removing compatibility paths.

Guardrails

  • No semantic changes without corresponding contract docs and tests.
  • Preserve canonical ownership boundaries:
    • compiler semantics: compiler_v2.py
    • runtime semantics: runtime/engine.py
    • compatibility wrappers: runtime/compat.py, runtime.py