Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ https://github.com/hyperpolymath/nextgen-languages/blob/main/docs/disambiguation

The following files in `.machine_readable/` contain structured project metadata:

- `.machine_readable/6a2/STATE.a2ml` - Current project state and progress
- `.machine_readable/6a2/META.a2ml` - Architecture decisions and development practices
- `.machine_readable/6a2/ECOSYSTEM.a2ml` - Position in the ecosystem and related projects
- `.machine_readable/6a2/AGENTIC.a2ml` - AI agent interaction patterns
- `.machine_readable/6a2/NEUROSYM.a2ml` - Neurosymbolic integration config
- `.machine_readable/6a2/PLAYBOOK.a2ml` - Operational runbook
- `.machine_readable/descriptiles/STATE.a2ml` - Current project state and progress
- `.machine_readable/descriptiles/META.a2ml` - Architecture decisions and development practices
- `.machine_readable/descriptiles/ECOSYSTEM.a2ml` - Position in the ecosystem and related projects
- `.machine_readable/descriptiles/AGENTIC.a2ml` - AI agent interaction patterns
- `.machine_readable/descriptiles/NEUROSYM.a2ml` - Neurosymbolic integration config
- `.machine_readable/descriptiles/PLAYBOOK.a2ml` - Operational runbook

---

Expand All @@ -57,7 +57,7 @@ The following files in `.machine_readable/` contain structured project metadata:
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
| **Python** | SaltStack only | No other Python permitted |
| **Nickel** | Configuration language | For complex configs |
| **A2ML** | State/meta files | .machine_readable/6a2/STATE.a2ml, .machine_readable/6a2/META.a2ml, .machine_readable/6a2/ECOSYSTEM.a2ml |
| **A2ML** | State/meta files | .machine_readable/descriptiles/STATE.a2ml, .machine_readable/descriptiles/META.a2ml, .machine_readable/descriptiles/ECOSYSTEM.a2ml |
| **Julia** | Batch scripts, data processing | Per RSR |
| **OCaml** | AffineScript compiler | Language-specific (compiler-host tooling lives here) |
| **Ada** | Safety-critical systems | Where required |
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/TRUST.contractile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
(deny "push without confirmation in the same session")
(deny "add a language feature not in ANCHOR.a2ml thesis")
(deny "reverse any ADR (ADR-001 through ADR-010) without a new ADR")
(deny "delete or overwrite the 6a2/ core files (STATE/META/ECOSYSTEM/AGENTIC/NEUROSYM/PLAYBOOK)")
(deny "delete or overwrite the descriptiles/ core files (STATE/META/ECOSYSTEM/AGENTIC/NEUROSYM/PLAYBOOK)")
(deny "modify IDApTIK without explicit instruction (AGPL — separate repo, separate session)")
)

Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/anchors/ANCHOR.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ thesis:

authorities:
scope-statement:
- ".machine_readable/6a2/META.a2ml (ADRs)"
- ".machine_readable/descriptiles/META.a2ml (ADRs)"
- "~/Desktop/Frontier_Programming_Practices_AffineScript/AI.a2ml (v2.0)"

human-guide:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -483,10 +483,10 @@ consequences = """
form across format passes.
"""
references = [
".machine_readable/6a2/STATE.a2ml [track-a-manhattan]",
".machine_readable/6a2/STATE.a2ml [[open-bug]] BUG-001",
".machine_readable/6a2/STATE.a2ml [[open-bug]] BUG-002",
".machine_readable/6a2/META.a2ml [[adr]] ADR-002 (scaled Let rule)",
".machine_readable/descriptiles/STATE.a2ml [track-a-manhattan]",
".machine_readable/descriptiles/STATE.a2ml [[open-bug]] BUG-001",
".machine_readable/descriptiles/STATE.a2ml [[open-bug]] BUG-002",
".machine_readable/descriptiles/META.a2ml [[adr]] ADR-002 (scaled Let rule)",
"lib/ast.ml ExprLet (lines 105-111), StmtLet (lines 170-176)",
"lib/lexer.ml (ZERO/ONE never emitted)",
"lib/parser.mly quantity rule (lines 180-183)",
Expand Down

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions 0-AI-MANIFEST.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Project metadata and AI agent configuration files live under `.machine_readable/`. All metadata files use the `.a2ml` extension; the `.scm` extension is reserved for Guix (`guix.scm`, `.guix-channel`).

## Core 6a2 metadata (`.machine_readable/6a2/`)
## Core descriptiles metadata (`.machine_readable/descriptiles/`)

- **STATE.a2ml** - Current project state, progress, blockers, next actions, session notes
- **ECOSYSTEM.a2ml** - Position in ecosystem, relationships to sibling projects
Expand All @@ -29,7 +29,7 @@ Project metadata and AI agent configuration files live under `.machine_readable/

## Workflow

1. Read `.machine_readable/6a2/*.a2ml` files at session start
1. Read `.machine_readable/descriptiles/*.a2ml` files at session start
2. Check `STATE.a2ml` for current phase, blockers, next actions
3. Follow patterns and constraints from `AGENTIC.a2ml`
4. Follow methodology gates from `agent_instructions/methodology.a2ml`
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Thank you for your interest in AffineScript — a practical language for resource-safe systems, compiling to typed WebAssembly. This guide covers how to set up a working tree, file useful bugs, and submit changes.

For the language itself, start from [`README.adoc`](README.adoc). For project state, blockers, and next-actions, see [`.machine_readable/6a2/STATE.a2ml`](.machine_readable/6a2/STATE.a2ml).
For the language itself, start from [`README.adoc`](README.adoc). For project state, blockers, and next-actions, see [`.machine_readable/descriptiles/STATE.a2ml`](.machine_readable/descriptiles/STATE.a2ml).

---

Expand Down Expand Up @@ -75,7 +75,7 @@ affinescript/
### Suggesting Features

**Before suggesting:**
1. Skim [`docs/ROADMAP.adoc`](docs/ROADMAP.adoc) and `.machine_readable/6a2/STATE.a2ml`.
1. Skim [`docs/ROADMAP.adoc`](docs/ROADMAP.adoc) and `.machine_readable/descriptiles/STATE.a2ml`.
2. Search existing issues and discussions.

**When suggesting:** use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include:
Expand Down
2 changes: 1 addition & 1 deletion RSR_COMPLIANCE.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ toc::[]
|`.well-known/humans.txt` |✅ |Human-readable maintainer / contributor surface.
|`guix.scm` or `flake.nix` |⚠️ |Neither file currently committed; the `affinescript.opam` package descriptor + the global `justfile` recipes carry the build contract today. Adding a Guix channel definition is a planned follow-up (estate primary is Guix per RSR-OUTLINE §"Language Tiers"); a Nix fallback would be acceptable for early CI.
|`0-AI-MANIFEST.a2ml` |✅ |Adopted 2026-05-25 (PR #359) replacing the older `AI.a2ml` per Hypatia `root_hygiene` rule. Matches sibling-repo convention (`hyperpolymath/road-skate`, `affinescript-vite/`, `affinescriptiser/` all carry the same).
|`STATE.scm` |❌ |*Documented exemption.* This repo's `.scm` extension is reserved for Guix (`guix.scm`, `.guix-channel`) per the language policy in `0-AI-MANIFEST.a2ml`. Project state lives at `.machine_readable/6a2/STATE.a2ml` in the canonical 6a2 schema (matches sibling repos in the same estate). Substituting `.a2ml` for `.scm` is the cross-repo standard, not an AffineScript outlier — see also `hyperpolymath/road-skate`'s `.machine_readable/STATE.a2ml`.
|`STATE.scm` |❌ |*Documented exemption.* This repo's `.scm` extension is reserved for Guix (`guix.scm`, `.guix-channel`) per the language policy in `0-AI-MANIFEST.a2ml`. Project state lives at `.machine_readable/descriptiles/STATE.a2ml` in the canonical descriptiles schema (matches sibling repos in the same estate). Substituting `.a2ml` for `.scm` is the cross-repo standard, not an AffineScript outlier — see also `hyperpolymath/road-skate`'s `.machine_readable/STATE.a2ml`.
|`RSR_COMPLIANCE.adoc` |✅ |This file. Added 2026-05-25.
|===

Expand Down
2 changes: 1 addition & 1 deletion docs/CAPABILITY-MATRIX.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ readiness.* Where any other document (`README.adoc`,
`docs/architecture/BACKEND-IMPLEMENTATION.md`,
`docs/reference/COMPILER-CAPABILITIES.md`,
`docs/history/ALPHA-1-RELEASE-NOTES.md`, `docs/ROADMAP.adoc`,
`.machine_readable/6a2/STATE.a2ml`)
`.machine_readable/descriptiles/STATE.a2ml`)
disagrees with this matrix, *this matrix wins* and the other document is drift
to be corrected. Reconstructed and verified 2026-05-19 against
`origin/main`@dc5b817 with the compiler as oracle. Tracks issue
Expand Down
2 changes: 1 addition & 1 deletion docs/EFFECTS-IMPLEMENTATION.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
== Status Sync (2026-04-12)

This document tracks the implementation status of algebraic effects in
AffineScript and is aligned with `.machine++_++readable/6a2/STATE.a2ml`.
AffineScript and is aligned with `.machine++_++readable/descriptiles/STATE.a2ml`.

== Syntax (Current Parser Form)

Expand Down
2 changes: 1 addition & 1 deletion docs/NAVIGATION.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This guide helps you navigate the AffineScript repository structure.

* *New users* — link:tutorial/lesson-01-hello.adoc[tutorial (lessons 1–10)], link:guides/warmup/[runnable warm-ups], link:../wiki/language-reference/[language reference].
* *Developers / contributors* — this guide, link:../wiki/compiler/architecture.md[compiler architecture], link:decisions/[ADRs], link:governance/CONTRIBUTING.adoc[contributing].
* *Maintainers* — link:governance/MAINTAINERS.adoc[maintainers], link:standards/RELEASE.adoc[release process], link:../.machine_readable/6a2/PLAYBOOK.a2ml[ops playbook], link:SOUNDNESS.adoc[soundness ledger].
* *Maintainers* — link:governance/MAINTAINERS.adoc[maintainers], link:standards/RELEASE.adoc[release process], link:../.machine_readable/descriptiles/PLAYBOOK.a2ml[ops playbook], link:SOUNDNESS.adoc[soundness ledger].

== Quick Start Files (Root Level)

Expand Down
2 changes: 1 addition & 1 deletion docs/ROADMAP.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ order:
*Ecosystem Integration Track* INT-01..12.
* `docs/TECH-DEBT.adoc` — the coordination ledger (DOC/CORE/STDLIB/INT/SAT).

`.machine_readable/6a2/STATE.a2ml` mirrors these; it does not lead, and is
`.machine_readable/descriptiles/STATE.a2ml` mirrors these; it does not lead, and is
currently flagged stale (DOC-05, issue #176).
====

Expand Down
2 changes: 1 addition & 1 deletion docs/STATE-2026-05-26.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ This is important and routinely misunderstood:
Canonical disambiguation:
https://github.com/hyperpolymath/nextgen-languages/blob/main/docs/disambiguation/ephapax-vs-affinescript.md

Repo-level hooks landed 2026-05-26: README admonitions in affinescript (PR #393), ephapax (ephapax#152), typed-wasm (typed-wasm#73); CLAUDE.md disambiguation sections; `.machine_readable/6a2/AGENTIC.a2ml` `[disambiguation]` blocks; hypatia DR001 advisory rule (hypatia#347).
Repo-level hooks landed 2026-05-26: README admonitions in affinescript (PR #393), ephapax (ephapax#152), typed-wasm (typed-wasm#73); CLAUDE.md disambiguation sections; `.machine_readable/descriptiles/AGENTIC.a2ml` `[disambiguation]` blocks; hypatia DR001 advisory rule (hypatia#347).

== Distance to 1.0 (per ROADMAP timeline)

Expand Down
4 changes: 2 additions & 2 deletions docs/TECH-DEBT.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ lines 25/614 also fixed — pointed both at CAPABILITY-MATRIX). MONITOR
posture stays live via DOC-08/09
|DOC-05 |`STATE.a2ml` drift flagged (it mirrors, does not lead) |*DONE
in tree* 2026-05-21 (`authoritative-status-doc` + `drift-flag` keys
present in `.machine_readable/6a2/STATE.a2ml`; README "Documentation"
present in `.machine_readable/descriptiles/STATE.a2ml`; README "Documentation"
section now also labels STATE.a2ml as the mirror)
|DOC-06 |`ROADMAP.adoc` Ecosystem Integration Track (INT-01..12) cross-links
this ledger |*DONE in tree* 2026-05-21 (ROADMAP.adoc §"Status &
Expand Down Expand Up @@ -460,7 +460,7 @@ Widening roadmap (tranches A..E, recommended sequencing):
link:specs/TYPED-WASM-ROADMAP.adoc[specs/TYPED-WASM-ROADMAP.adoc].
Proposed ADRs: ADR-020 (schema versioning), ADR-021 (multi-producer
coordination model) — both PROPOSED in
`.machine_readable/6a2/META.a2ml`.
`.machine_readable/descriptiles/META.a2ml`.

[cols="1,3,1,2"]
|===
Expand Down
2 changes: 1 addition & 1 deletion docs/ci/required-checks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
====
*Sketch / operational note* (seeded 2026-06-21). Captures a CI failure class
that blocked merges across the estate and the rule that prevents it. Pairs with
the machine entry in `.machine_readable/6a2/PLAYBOOK.a2ml` (`[ci-required-checks]`).
the machine entry in `.machine_readable/descriptiles/PLAYBOOK.a2ml` (`[ci-required-checks]`).
====

toc::[]
Expand Down
4 changes: 2 additions & 2 deletions docs/decisions/0019-compiler-distribution.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
Status:: Accepted
Date:: 2026-05-19 (accepted); implementation S1–S4 landed 2026-05-20
Issue:: https://github.com/hyperpolymath/affinescript/issues/260[INT-04 #260] (split from https://github.com/hyperpolymath/affinescript/issues/181[#181])
Series:: Settled-decisions ledger; companion entry in `.machine_readable/6a2/META.a2ml [[adr]] id="ADR-019"`; narrative in `docs/specs/SETTLED-DECISIONS.adoc` §"Compiler Distribution".
Series:: Settled-decisions ledger; companion entry in `.machine_readable/descriptiles/META.a2ml [[adr]] id="ADR-019"`; narrative in `docs/specs/SETTLED-DECISIONS.adoc` §"Compiler Distribution".

== Context

Expand Down Expand Up @@ -125,7 +125,7 @@ tag-time bake step (#297/#300).
this record.
* `docs/PACKAGING.adoc` §"The compiler itself — decided (ADR-019 / #260)".
* `docs/TECH-DEBT.adoc` INT-04 / INT-10 rows.
* `.machine_readable/6a2/META.a2ml [[adr]] id="ADR-019"` — the machine record.
* `.machine_readable/descriptiles/META.a2ml [[adr]] id="ADR-019"` — the machine record.
* `.github/workflows/release.yml` (S2 producer), `.github/workflows/publish-jsr.yml`
(owner-gated shim publish), `packages/affinescript-cli/` (the shim).

Expand Down
4 changes: 2 additions & 2 deletions docs/decisions/0022-polonius-origin-variables.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
Status:: Accepted (architecture ratified in PR #407 thread, 2026-05-27; staged implementation tracked in #553)
Date:: 2026-05-26
Issue:: https://github.com/hyperpolymath/affinescript/issues/177[CORE-01 #177]
Series:: Settled-decisions ledger; companion entry in `.machine_readable/6a2/META.a2ml`.
Series:: Settled-decisions ledger; companion entry in `.machine_readable/descriptiles/META.a2ml`.

== Context

Expand Down Expand Up @@ -339,7 +339,7 @@ At each milestone:
binding), #396 (Slice C′ loop soundness), #397 (Slice D captured-linears).
* `docs/STATE-2026-05-26.adoc` §"Dominant cost item" / §"Critical path".
* `docs/CAPABILITY-MATRIX.adoc` CORE-01 row.
* `.machine_readable/6a2/META.a2ml [[adr]] id="ADR-022"`.
* `.machine_readable/descriptiles/META.a2ml [[adr]] id="ADR-022"`.
* `docs/specs/SETTLED-DECISIONS.adoc` (section to be added on ratification).
* Polonius reference: Niko Matsakis, "An alias-based formulation of the
borrow checker", 2018 (the `subset/3` + `loan_live_at/2` shape, naive
Expand Down
2 changes: 1 addition & 1 deletion docs/decisions/0023-finality-types.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
Status:: Draft (stub — design-only; no implementation authorised by this document)
Date:: 2026-06-11
Issue:: https://github.com/hyperpolymath/affinescript/issues/554[#554 (soundness gate)], https://github.com/hyperpolymath/affinescript/issues/553[#553 (ADR-022 sequencing)]
Series:: Settled-decisions ledger; companion entry to be added to `.machine_readable/6a2/META.a2ml` at ratification.
Series:: Settled-decisions ledger; companion entry to be added to `.machine_readable/descriptiles/META.a2ml` at ratification.

== The hard question, on page one

Expand Down
2 changes: 1 addition & 1 deletion docs/history/MODULE-SYSTEM-PROGRESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ have real modules, or stay flat-and-deduplicated?

**Decision: real modules with qualified paths.** Not a flat de-duplicated
prelude. Status: **accepted, settled** (ADR-011 in
`.machine_readable/6a2/META.a2ml`; ledger entry in
`.machine_readable/descriptiles/META.a2ml`; ledger entry in
`docs/specs/SETTLED-DECISIONS.adoc`).

### Rationale
Expand Down
2 changes: 1 addition & 1 deletion docs/history/SESSION-HANDOFF-2026-05-27.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Actions queue drain.
== What this session actually did

1. Drafted **ADR-022** at `docs/decisions/0022-polonius-origin-variables.adoc`
+ a structured `[[adr]]` block in `.machine_readable/6a2/META.a2ml`,
+ a structured `[[adr]]` block in `.machine_readable/descriptiles/META.a2ml`,
shipped as draft PR **#398**.
2. Cut a minimal **M1 sketch** for ADR-022 (`origin_var option` on
`TyRef`/`TyMut` + a `lib/borrow_polonius/` sublibrary skeleton) — kept
Expand Down
2 changes: 1 addition & 1 deletion docs/history/TYPECHECKER-COMPLETION-2026-01-23.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// SPDX-FileCopyrightText: 2024-2026 hyperpolymath (Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>)
____
Historical snapshot from 2026-01-23. Superseded by
.machine++_++readable/6a2/STATE.a2ml. Retained for audit trail only.
.machine++_++readable/descriptiles/STATE.a2ml. Retained for audit trail only.
____

= Type Checker Completion Report
Expand Down
2 changes: 1 addition & 1 deletion docs/history/TYPED-WASM-LEVEL-10-CLOSURE-2026-04-19.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,4 @@ not a typed-wasm gap.
* Submodule bumps: `nextgen-languages@61f69e5`, `nextgen-languages@24a3205`
* Sibling doc commit: `developer-ecosystem@b7fbe5f` (deno-test README + regression)
* `KNOWN-ISSUES.md` — flipped to RESOLVED with root-cause summary retained for history
* `.machine_readable/6a2/STATE.a2ml` — session-note-2026-04-19-a
* `.machine_readable/descriptiles/STATE.a2ml` — session-note-2026-04-19-a
2 changes: 1 addition & 1 deletion docs/reports/AFFINESCRIPT-ROADMAP-STATUS-2026-04-13.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ implementation, not source analysis tools.
=== ⏳ .machine++_++readable Suite Upgrade

* Status: Completed 2026-04-12
* All 6a2 core present
* All descriptiles core present
* Surrounding machinery added

=== ⏳ Performance Benchmarks
Expand Down
2 changes: 1 addition & 1 deletion docs/spec.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ project.

*The authoritative current scope lives in:* -
`.machine++_++readable/anchors/ANCHOR.a2ml` (canonical identity {plus}
thesis) - `.machine++_++readable/6a2/META.a2ml` (architecture decision
thesis) - `.machine++_++readable/descriptiles/META.a2ml` (architecture decision
records) -
`~/Desktop/Frontier++_++Programming++_++Practices++_++AffineScript/AI.a2ml`
(v2.0) -
Expand Down
Loading
Loading