Skip to content

Commit 44da38a

Browse files
hyperpolymathclaude
andcommitted
refactor(descriptiles): migrate .machine_readable/6a2 -> descriptiles (estate naming canon)
Estate naming mandate (2026-06-30): the machine-readable metadata family is `descriptiles`; `6a2` is fully deprecated and must never be reintroduced. `rsr-template-repo` already led this rename (PR #128). This brings AffineScript into line. Changes (mechanical, word-boundaried `\b6a2\b` -> `descriptiles`, so checksum substrings are untouched; Cargo.lock hash coincidences excluded): - `git mv .machine_readable/6a2 .machine_readable/descriptiles` (6 .a2ml files) - updated the one code dependency: tools/check-doc-truthing.sh STATE_FILE path - updated .machine_readable/TRUST.contractile deny-rule path - updated ~30 doc/metadata references (paths + "6a2 metadata" family-name prose) Verified (dune 3.24.0, system OCaml 4.14.1 + opam switch as-verify): - `dune build` = exit 0 (no build impact) - zero `\b6a2\b` references remain (excl. Cargo.lock checksums) - check-doc-truthing.sh reads the renamed STATE path correctly Two doc gates (README->SOUNDNESS.adoc, README->CAPABILITY-MATRIX.adoc) are RED on main independently of this change (README untouched here); tracked separately. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 255c0b4 commit 44da38a

6 files changed

Lines changed: 2049 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# AGENTIC.a2ml — AI agent constraints and capabilities
5+
[metadata]
6+
version = "0.1.0"
7+
last-updated = "2026-04-11"
8+
9+
[agent-permissions]
10+
can-edit-source = true
11+
can-edit-tests = true
12+
can-edit-docs = true
13+
can-edit-config = true
14+
can-create-files = true
15+
16+
[agent-constraints]
17+
# What AI agents must NOT do:
18+
# - Never use banned language patterns (believe_me, unsafeCoerce, etc.)
19+
# - Never commit secrets or credentials
20+
# - Never use banned languages (TypeScript, Python, Go, etc.)
21+
# - Never place state files in repository root (must be in .machine_readable/)
22+
# - Never use AGPL license (use MPL-2.0)
23+
24+
[maintenance-integrity]
25+
fail-closed = true
26+
require-evidence-per-step = true
27+
allow-silent-skip = false
28+
require-rerun-after-fix = true
29+
release-claim-requires-hard-pass = true
30+
31+
[automation-hooks]
32+
# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml
33+
# on-exit: Update STATE.a2ml with session outcomes
34+
# on-commit: Run just validate-rsr
35+
36+
# ── Disambiguation ────────────────────────────────────────────────────────
37+
# AI agents have repeatedly conflated this repo (AffineScript) with the
38+
# unrelated language Ephapax (hyperpolymath/ephapax). The two share exactly
39+
# one thing — both target hyperpolymath/typed-wasm — and otherwise have
40+
# different ASTs, type checkers, compilers, and proof stories. The shared
41+
# `affine` syllable names a substructural-logic property in BOTH cases
42+
# (it's a logic-family name), not a project relationship. Ephapax is itself
43+
# dyadic and contains an `ephapax-affine` *sublanguage* — that sublanguage
44+
# is NOT AffineScript.
45+
[disambiguation]
46+
this = "hyperpolymath/affinescript"
47+
canonical-name = "AffineScript"
48+
distinct-from = ["hyperpolymath/ephapax"]
49+
shared-with-distinct = ["hyperpolymath/typed-wasm"]
50+
ephapax-affine-sublanguage-is-not-affinescript = true
51+
canonical-doc = "https://github.com/hyperpolymath/nextgen-languages/blob/main/docs/disambiguation/ephapax-vs-affinescript.md"
52+
canonical-memory-entry = "feedback_affinescript_ephapax_siblings_not_impl_proof.md"
53+
do-not-apply-cross-repo-lessons-without-explicit-check = true
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# ECOSYSTEM.a2ml — Ecosystem position
3+
# Converted from ECOSYSTEM.scm on 2026-03-21
4+
5+
[metadata]
6+
project = "affinescript"
7+
ecosystem = "hyperpolymath"
8+
9+
[position]
10+
type = "programming-language"
11+
purpose = "A systems programming language combining affine types, dependent types, row polymorphism, and extensible effects, compiling to WebAssembly"
12+
13+
[pipeline]
14+
position = "co-product"
15+
chain = "katagoria → typell → typed-wasm → PanLL"
16+
notes = "AffineScript compiles to typed WasmGC. TypeLL grounds its type system. typed-wasm provides the shared binary layout and ABI conventions."
17+
coordination = "nextgen-typing"
18+
19+
[related-projects]
20+
projects = [
21+
{ name = "typell", relationship = "type-theory-foundation", notes = "TypeLL's open-ended progressive framework grounds AffineScript's type system. typell-affinescript bridge crate." },
22+
{ name = "typed-wasm", relationship = "aggregate-library", notes = "Shared binary layout conventions for WasmGC cross-language calls. AffineScript Option[T]/Result[T,E]/String have agreed layouts here." },
23+
{ name = "nextgen-typing", relationship = "coordination-parent", notes = "Coordination monorepo for the type theory pipeline. Canonical architecture doc." },
24+
{ name = "ephapax", relationship = "sibling-wasm-target", notes = "Both compile to typed WasmGC. Independent designs; converge at binary level via typed-wasm." },
25+
{ name = "katagoria", relationship = "research-upstream", notes = "Type theory research origination. Future AffineScript type system extensions may originate there." },
26+
{ name = "panll", relationship = "consumer", notes = "AffineScript is one of PanLL's development language targets." },
27+
]

0 commit comments

Comments
 (0)