// SPDX-License-Identifier: CC-BY-SA-4.0
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= ENSAID_CONFIG.a2ml
image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"]

:toc: left
:toclevels: 2
:icons: font

Per-repository configuration for eNSAID-compatible development environments.

== What is eNSAID?

**eNSAID** stands for **Environment for NeSy-Agentic Integrated Development**.
It is the paradigm underpinning https://github.com/hyperpolymath/panll[PanLL]
and any future neurosymbolic development environment that treats panels, clades,
workflows, and ambient substrates as first-class concepts.

== What is `ENSAID_CONFIG.a2ml`?

`ENSAID_CONFIG.a2ml` is a single configuration file placed in a repository's
`.machine_readable/` directory alongside other machine-readable artefacts
(STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, etc.). It declares how PanLL (or any
eNSAID-compatible tool) should configure itself when loading that repository.

Think of it as **`.editorconfig` for neurosymbolic development environments**.

[cols="1,3"]
|===
|Analogy |Purpose

|`.editorconfig`
|Tells editors how to format code (tabs, charset, line endings)

|`.machine_readable/ENSAID_CONFIG.a2ml`
|Tells eNSAID tools how to orchestrate panels, workflows, clades, and workspaces
|===

The file uses UPPERCASE with underscores following the hyperpolymath naming
convention for non-executable machine-readable files — consistent with
`STATE.a2ml`, `META.a2ml`, `ECOSYSTEM.a2ml`, etc.

== Drop-in Design

Repositories **without** `ENSAID_CONFIG.a2ml` work fine — eNSAID tools apply
sensible defaults (all panels available, standard workspace mode, no custom
workflows).

Repositories **with** `ENSAID_CONFIG.a2ml` get bespoke configuration: specific
panels enabled or disabled, custom automation rules, clade trait overrides,
tailored portfolios, and workspace protection policies.

== File Sections

[source,toml]
----
# .machine_readable/ENSAID_CONFIG.a2ml

[ensaid]           # Core identity and version
[workspace]        # Workspace mode, protection, execution
[preferences]      # Display and behaviour preferences
[panels]           # Panel enablement, isolation tiers, endpoints
[workflows]        # Automation router rules (event → condition → action)
[clades]           # Clade overrides: capabilities, custom traits
[portfolios]       # Custom portfolio definitions for this repo context
----

All content uses the https://github.com/hyperpolymath/standards/tree/main/a2ml[A2ML] format
(TOML-compatible markup for AI-readable configuration).

== Quick Example

A game development repository might include:

[source,toml]
----
# .machine_readable/ENSAID_CONFIG.a2ml
[ensaid]
version = "1.0.0"
tool = "panll"

[workspace]
mode = "rhodium"
protection = "open"
execution = "live"

[panels]
version = "1.0.0"

[[panels.enabled]]
id = "game-preview"
isolation = "native"
endpoint = "http://localhost:8080"
auto-connect = true

[panels.disabled]
ids = ["cloudguard", "aerie", "plaza"]
----

This tells PanLL to load in rhodium mode with a game preview panel
auto-connected to a local dev server.

== Specification

The formal specification is in the `spec/` directory:

* link:spec/ENSAID-CONFIG-SPEC.adoc[ENSAID-CONFIG-SPEC.adoc] — Complete specification

== Relationship to Other Standards

[cols="1,3"]
|===
|Standard |Relationship

|`.editorconfig`
|Editor formatting (tab size, charset). `ENSAID_CONFIG.a2ml` is for development
environment orchestration — a higher-level concern.

|`.machine_readable/` (siblings)
|Project state, governance, metadata (STATE.a2ml, META.a2ml, etc.).
`ENSAID_CONFIG.a2ml` shares the directory but focuses on tooling preferences,
not project semantics.

|`0-AI-MANIFEST.a2ml`
|AI agent entry point and invariants. `ENSAID_CONFIG.a2ml` is specifically
for eNSAID tool configuration, not general AI gating.

|`PANELS.a2ml`
|If a repo uses a root-level `PANELS.a2ml` for panel manifest, the
`[panels]` section in `ENSAID_CONFIG.a2ml` supersedes it when present.
|===

== License

Palimpsest License v1.0 (PMPL-1.0-or-later).
Copyright (c) 2026 Jonathan D.A. Jewell.

== Author

Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
