ADR index — Handl Language
Decision records aggregated across the product's public repos. The canonical registry is host/project/adrs/INDEX.md (on the host repo's project branch); this page is the published cross-repo view. Generated by docs/scripts/gen-docs-index.py. status and date are read from each record's frontmatter (ADR-0163).
host
| # | title | status | date | file |
|---|---|---|---|---|
| 0001 | Host Bundles | accepted | 2026-08-24 | project/adrs/0001-host-bundles.md |
| 0001 | Library crates are exposed as Platform plugins | accepted | 2026-08-29 | project/adrs/0001-library-crates-are-platform-plugins.md |
| 0001 | ADR-0001 (Remaining): Canonical Token/Grammar/Value Plugin Cleanup | proposed | 2026-09-02 | project/adrs/archived/0001-generic-node-and-plugin-driven-canonical-kit-remaining-archived.md |
| 0001 | Generic Node, Trait-Based Capabilities, and Plugin-Driven Canonical Kit | accepted | 2026-08-29 | project/adrs/archived/0001-generic-node-and-plugin-driven-canonical-kit.md |
| 0002 | ADR-0002 (Remaining): Plugin Library Conversion and Module Abstraction | proposed | 2026-08-29 | project/adrs/0002-handl-platform-composable-host-remaining.md |
| 0002 | Platform is agnostic of language-specific plugins | accepted | 2026-08-29 | project/adrs/0002-platform-is-agnostic.md |
| 0002 | ADR-0002 (Archived v1): Single Plugin Model — Core Architecture | accepted | 2026-09-02 | project/adrs/archived/0002-handl-platform-composable-host-v1-complete.md |
| 0002 | Single Plugin Model for Host, Operations, Libraries, Targets, and Options | accepted | 2026-08-29 | project/adrs/archived/0002-handl-platform-composable-host.md |
| 0006 | Parametric Polymorphism (Generics) for handl Type System | implemented | 2026-08-29 | project/adrs/archived/0006-generics.md |
| 0009 | Strategy C — Runtime Module Loading as Handler-Interpreted Ops | proposed | 2026-10-16 | project/adrs/0009-strategy-c-runtime-module-loading.md |
| 0009 | Type generation from handl field declarations | accepted | 2026-08-29 | project/adrs/archived/0009-typegen-json-schema.md |
| 0010 | Package Manager: Content-Addressed, Diff-Based, Composable Stores | proposed | 2026-08-24 | project/adrs/0010-package-manager.md |
| 0012 | Versioning for Language Artifacts | superseded | 2026-08-24 | project/adrs/0012-versioning.md |
| 0014 | handl Formatter | proposed | 2026-08-24 | project/adrs/0014-formatter.md |
| 0015 | Linter | proposed | 2026-08-24 | project/adrs/0015-linter.md |
| 0022 | Lexer Architecture: Self-Hosted Streaming with Runtime Config | proposed | 2026-08-24 | project/adrs/0022-lexer-architecture.md |
| 0023 | Modular AST: ast-common and handl-ast | superseded | 2026-08-24 | project/adrs/0023-modular-ast-common.md |
| 0024 | Agnostic parser engine: handl-parser-common and handl-parser-canonical on top | accepted | 2026-08-24 | project/adrs/0024-parser-common.md |
| 0027 | VM Crate Restructure | superseded | 2026-08-24 | project/adrs/0027-vm-crate-restructure.md |
| 0028 | Pluggable Module Composition | proposed | 2026-08-24 | project/adrs/0028-pluggable-module-composition.md |
| 0030 | lib-lang — Expose the Handl language as a reusable library | superseded | 2026-08-24 | project/adrs/0030-lib-lang.md |
| 0031 | Platform Abstractions | proposed | 2026-08-25 | project/adrs/0031-platform-abstractions.md |
| 0032 | ADR-0032 (Archived v1): Types are Values — Universe Levels and Core Type System | accepted | 2026-09-02 | project/adrs/archived/0032-types-as-values-v1-complete.md |
| 0032 | Types are values, runtime and typechecker share one value space | accepted | 2026-08-29 | project/adrs/archived/0032-types-as-values.md |
| 0033 | Unified Plugin Crate Naming | accepted | 2026-08-29 | project/adrs/archived/0033-unified-plugin-crate-naming.md |
| 0034 | Zero-Monolith, Plugin-Driven Platform | accepted | 2026-08-29 | project/adrs/archived/0034-zero-monolith-plugin-driven-platform.md |
| 0035 | Loaders as Abstract Plugins | proposed | 2026-08-29 | project/adrs/0035-loaders-as-plugins.md |
| 0036 | Host Applier as a Plugin | accepted | 2026-08-29 | project/adrs/0036-host-applier-as-plugin.md |
| 0037 | Plugin Resolution and Excludes | proposed | 2026-08-29 | project/adrs/0037-plugin-resolution-and-excludes.md |
| 0038 | Ignored Test Inventory and Triage | accepted | 2026-08-29 | project/adrs/0038-ignored-test-inventory-and-triage.md |
| 0039 | Kits Are Curated Plugin Lists, Not Implementations | proposed | 2026-09-02 | project/adrs/0039-kits-are-curated-plugin-lists.md |
| 0040 | VM is an Operation, Not a Subsystem | accepted | 2026-09-02 | project/adrs/0040-vm-is-an-operation-not-a-subsystem.md |
| 0041 | Languages as First-Class Values | proposed | 2026-09-02 | project/adrs/0041-languages-as-first-class-values.md |
| 0042 | Transformations as First-Class Values | proposed | 2026-09-02 | project/adrs/0042-transformations-as-first-class-values.md |
| 0043 | Proofs as First-Class Values | proposed | 2026-09-02 | project/adrs/0043-proofs-as-first-class-values.md |
| 0044 | Language as Data and Runtime Split | accepted | 2026-09-02 | project/adrs/0044-language-as-data-and-runtime-split.md |
| 0046 | Capability Discipline at the Language Level | proposed | 2026-08-30 | project/adrs/0046-capability-discipline-at-the-language-level.md |
| 0047 | Meta Functions as plugin-lib-* Crates | accepted | 2026-09-02 | project/adrs/0047-meta-functions-as-plugin-lib-crates.md |
| 0048 | Modules as First-Class Values | superseded | 2026-09-02 | project/adrs/0048-modules-as-first-class-values.md |
| 0049 | Modules are Evaluated Environments | proposed | 2026-09-02 | project/adrs/0049-modules-are-evaluated-environments.md |
| 0050 | Plugin System in Handl | proposed | 2026-09-02 | project/adrs/0050-plugin-system-in-handl.md |
| 0051 | ffi-rust — Generic Rust Binding Façade | superseded | 2026-09-02 | project/adrs/0051-ffi-rust-binding-facade.md |
| 0052 | Arrow Calculus Kernel | accepted | 2026-08-31 | project/adrs/0052-arrow-calculus-kernel.md |
| 0053 | Generic Pratt Parser — Grammar Data Replaces Per-Construct Branches | proposed | 2026-09-02 | project/adrs/0053-generic-pratt-parser.md |
| 0054 | Generic Typecheck Engine (plugin-engine-typecheck + plugin-engine-typecheck-nbe) | accepted | 2026-09-01 | project/adrs/0054-generic-typecheck-engine.md |
| 0055 | Tagged Values | accepted | 2026-09-01 | project/adrs/0055-branded-values.md |
| 0056 | Import / Export and Multi-File Programs | proposed | 2026-09-02 | project/adrs/0056-import-export-and-multi-file-programs.md |
| 0058 | Generic Data-Driven Engines | accepted | 2026-09-01 | project/adrs/0058-generic-data-driven-engines.md |
| 0059 | Generic Object Key Evaluation | proposed | 2026-09-02 | project/adrs/0059-generic-object-key-evaluation.md |
| 0060 | Generic Call Dispatch | proposed | 2026-09-01 | project/adrs/0060-generic-call-dispatch.md |
| 0061 | Generic Pattern Match | accepted | 2026-09-01 | project/adrs/0061-generic-pattern-match.md |
| 0063 | Scheme-Core Completeness for Self-Hosting | proposed | 2026-09-02 | project/adrs/0063-scheme-core-completeness.md |
| 0064 | Computational Language Authoring | proposed | 2026-09-02 | project/adrs/0064-computational-language-authoring.md |
| 0065 | Derived-Artifact Cache and Compression | proposed | 2026-09-02 | project/adrs/0065-derived-artifact-cache-and-compression.md |
| 0066 | Dependency-Graph Chunking | proposed | 2026-09-02 | project/adrs/0066-dependency-graph-chunking.md |
| 0067 | Chunk Certificates | proposed | 2026-09-02 | project/adrs/0067-chunk-certificates.md |
| 0069 | Arrow-Native Modules | accepted | 2026-09-01 | project/adrs/0069-arrow-native-modules.md |
| 0070 | Refinement Inference Scope — Deterministic Dataflow | accepted | 2026-09-01 | project/adrs/0070-refinement-inference-scope.md |
| 0072 | Concurrent Arrow Calculus | accepted | 2026-09-01 | project/adrs/0072-concurrent-arrow-calculus.md |
| 0077 | Stdlib Migration to Handl — op Declarations, Axioms, and the Elimination of Per-Library Rust | accepted | 2026-09-03 | project/adrs/0077-stdlib-migration-to-handl.md |
| 0081 | Data-Driven AST Child Roles — Closing the Last Engine Hardcoding | accepted | 2026-09-04 | project/adrs/0081-data-driven-ast-child-roles.md |
| 0083 | FFI-Native Stdlib — Handl over Direct C/POSIX Bindings | accepted | 2026-09-04 | project/adrs/0083-ffi-native-stdlib.md |
| 0083 | Flatten handl-packages/ Layout | accepted | 2026-09-04 | project/adrs/archived/0083-flatten-handl-packages-layout.md |
| 0085 | Bootstrap Tooling Strategy — Rust Tooling on the Generic Substrate | implemented | 2026-10-15 | project/adrs/0085-bootstrap-tooling-strategy.md |
| 0086 | Bootstrap Formatter (plugin-ext-fmt) | implemented | 2026-10-15 | project/adrs/0086-bootstrap-formatter.md |
| 0087 | Bootstrap Linter (plugin-ext-lint) | implemented | 2026-10-15 | project/adrs/0087-bootstrap-linter.md |
| 0088 | Bootstrap Typechecker (plugin-engine-typecheck) | implemented | 2026-10-15 | project/adrs/0088-bootstrap-typechecker.md |
| 0089 | Bootstrap Test Runner (plugin-engine-test) | implemented | 2026-10-15 | project/adrs/0089-bootstrap-test-runner.md |
| 0090 | Bootstrap CLI (host-cli) | implemented | 2026-10-15 | project/adrs/0090-bootstrap-cli.md |
| 0091 | Shared Diagnostics Crate (plugin-ext-diag) | implemented | 2026-10-15 | project/adrs/0091-plugin-ext-diag.md |
| 0092 | Test Framework in Handl | implemented | 2026-09-05 | project/adrs/0092-test-framework-in-handl.md |
| 0093 | String / Char / Unicode Layering | accepted | 2026-09-07 | project/adrs/0093-string-char-unicode-layering.md |
| 0094 | Generic AST Transform Engine (plugin-engine-transform + plugin-engine-transform-rewrite) | accepted | 2026-09-06 | project/adrs/0094-generic-ast-transform-engine.md |
| 0095 | Formatter as a Production Pipeline | proposed | 2026-09-08 | project/adrs/0095-formatter-as-production-pipeline.md |
| 0096 | Module Resolution — Path-Based Imports + .handl.toml Path Dependencies | accepted | 2026-09-08 | project/adrs/0096-module-resolution.md |
| 0097 | Lint Rules as Language Data | accepted | 2026-09-08 | project/adrs/0097-lint-rules-as-data.md |
| 0098 | One Language, Multiple Interpreters — A Graded Arrow Calculus | proposed | 2026-09-08 | project/adrs/0098-one-language-multiple-interpreters.md |
| 0099 | Principled Boundaries Between plugin-engine-* and plugin-ext-* Crates | proposed | 2026-09-08 | project/adrs/0099-plugin-engine-vs-ext-crate-boundaries.md |
| 0100 | Canonical Term Arrows | proposed | 2026-09-14 | project/adrs/0100-canonical-term-arrows.md |
| 0100 | The Directed-HoTT Limit of the Term Calculus | proposed | 2026-09-08 | project/adrs/0100-directed-hott-limit.md |
| 0100 | Wiring .hnl modules into HandlNativeLint and HandlNativeRewrite | proposed | 2026-09-14 | project/adrs/0100-handl-natives-wire.md |
| 0103 | The Kernel Is the Evaluator, Not the Calculus | accepted | 2026-09-10 | project/adrs/0103-kernel-is-evaluator-not-calculus.md |
| 0104 | Minimal Term Core with Generic Combinators | proposed | 2026-09-09 | project/adrs/0104b-minimal-term-core.md |
| 0105 | Typechecker in Handl | accepted | 2026-09-10 | project/adrs/0105-typechecker-in-handl.md |
| 0106 | The Object-Arrow Kernel | accepted | 2026-09-11 | project/adrs/0106-object-arrow-kernel.md |
| 0107 | Handl SDK Generator | accepted | 2026-09-13 | project/adrs/0107-handl-sdk-generator.md |
| 0114 | Handl Compile Plugin Architecture | proposed | 2026-09-14 | project/adrs/0114-handl-compile-plugin-architecture.md |
| 0120 | Paper/Implementation Alignment | accepted | 2026-09-18 | project/adrs/0120-paper-implementation-alignment.md |
| 0123 | AST shape faces — closing the last kind-dispatch sites | accepted | 2026-10-10 | project/adrs/0123-ast-shape-faces.md |
| 0124 | Handing a Language to capability plugins | proposed | 2026-10-10 | project/adrs/0124-capability-language-handoff.md |
| 0126 | Kernel boundary, and the idea ledger for retired reifications | accepted | 2026-10-12 | project/adrs/0126-kernel-boundary-and-the-idea-ledger.md |
| 0127 | TransformRule::Replace — a rule form for root-eliminating rewrites | accepted | 2026-10-15 | project/adrs/0127-transform-rule-replace.md |
| 0128 | Target Repos — Repo = Target, Module = One Port Implementation | proposed | 2026-10-15 | project/adrs/0128-target-repos.md |
| 0129 | Project-docs topology for the target-repo split | accepted | 2026-10-15 | project/adrs/0129-project-docs-topology.md |
| 0147 | Lower the while state fold to Loop + explicit protocol ops | accepted | 2026-10-17 | project/adrs/0147-lowering-state-fold-while.md |
| 0148 | Lower call/dimension application to App terms | accepted | 2026-10-17 | project/adrs/0148-lower-call-application.md |
| 0149 | host-cli is a dumb host; ext-* extensions load dynamically | accepted | 2026-10-17 | project/adrs/0149-dynamic-extension-host.md |
| 0150 | Repo visibility is derived from the dep closure, not chosen per-repo | accepted | 2026-10-21 | project/adrs/0150-visibility-closure-model.md |
| 0151 | Exec erases type annotations — signatures are typecheck-owned metadata | accepted | 2026-10-21 | project/adrs/0151-exec-erases-type-annotations.md |
| 0152 | data is a nominal former + constructor arrows + dependent eliminator | accepted | 2026-10-21 | project/adrs/0152-data-nominal-inductive-families.md |
| 0153 | ~[n]~> is a dimension index — n-cells as one indexed former | accepted | 2026-10-22 | project/adrs/0153-grades-as-arrow-indices.md |
| 0154 | Typecheck semantics — identity, equality, universes, literals, erasure | accepted | 2026-10-22 | project/adrs/0154-typecheck-semantics.md |
| 0155 | Scope-Bound Arrow Environments | landed | 2026-10-22 | project/adrs/0155-scope-bound-arrow-environments.md |
| 0156 | Module environments are parameters, not construction state | proposed | 2026-10-21 | project/adrs/0156-module-env-as-parameter.md |
| 0157 | mlopt on the fragment tower — domain vocabularies as Language fragments | proposed | 2026-10-24 | project/adrs/0157-mlopt-on-fragment-tower.md |
| 0158 | Effect resumption semantics — perform/handle as algebra homomorphisms on free arrow-algebras | proposed | 2026-10-25 | project/adrs/0158-effect-resumption-semantics.md |
| 0159 | Optimizer domains dissolve into ext tools, on a trigger | proposed | 2026-10-27 | project/adrs/0159-opt-domains-dissolve-into-ext-tools.md |
| 0160 | lib-* repos are language packages, not crates | proposed | 2026-10-28 | project/adrs/0160-lib-repos-are-language-packages.md |
| 0161 | An ADR is a one-page decision record | accepted | 2026-10-28 | project/adrs/0161-adr-is-a-one-page-decision.md |
| 0162 | project/ holds process artifacts; published docs live in the org docs/ | accepted | 2026-10-28 | project/adrs/0162-project-folder-taxonomy.md |
| 0163 | Every project/ artifact declares its metadata in YAML frontmatter | accepted | 2026-10-28 | project/adrs/0163-project-artifact-frontmatter.md |
| 0164 | Ports are types; implementations are named for what they do | proposed | 2026-10-29 | project/adrs/0164-ports-are-types-impls-are-named-for-what-they-do.md |
| 0165 | The kernel IR is a Term plus kit-declared ops | implemented | 2026-10-29 | project/adrs/0165-kernel-ir-is-term-plus-ops.md |
| 0166 | The IR gains pipeline(depth), and the schedule programme stops there | implemented | 2026-10-29 | project/adrs/0166-pipeline-depth-and-the-end-of-the-schedule-programme.md |