Skip to content

Commit a96e7f9

Browse files
committed
chore: estate-wide metadata and submodule sync (2026-04-20)
1 parent a91edb3 commit a96e7f9

8 files changed

Lines changed: 425 additions & 83 deletions

File tree

.machine_readable/6a2/AGENTIC.a2ml

Lines changed: 74 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
4-
# AGENTIC.a2ml — AI agent constraints and capabilities
4+
# AGENTIC.a2ml — AI agent constraints and capabilities for julia-the-viper
55
[metadata]
6-
version = "0.1.0"
7-
last-updated = "2026-04-11"
6+
version = "0.2.0"
7+
last-updated = "2026-04-19"
88

99
[agent-permissions]
1010
can-edit-source = true
@@ -15,20 +15,83 @@ can-create-files = true
1515

1616
[agent-constraints]
1717
# 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 PMPL-1.0-or-later)
18+
banned-patterns = [
19+
"believe_me (Idris2)",
20+
"assert_total (Idris2)",
21+
"Admitted (Coq)",
22+
"sorry (Lean)",
23+
"unsafeCoerce (Haskell)",
24+
"Obj.magic (OCaml)",
25+
".unwrap() → .expect('TODO') anti-pattern (Rust)"
26+
]
27+
banned-languages = [
28+
"TypeScript (use ReScript)",
29+
"Python (no SaltStack here)",
30+
"Go (use Rust)",
31+
"V-lang (banned 2026-04-10 → migrate to Zig)"
32+
]
33+
structural-rules = [
34+
"no SCM files — use A2ML",
35+
"no state files in repo root — must be in .machine_readable/",
36+
"no .git in subdirs (exception: declared submodules)",
37+
"no AGPL (JtV is PMPL)"
38+
]
39+
thesis-protection = [
40+
"Harvard separation: Data MUST NOT contain Control constructs",
41+
"Addition-only: no explicit subtract token in user Data syntax (v2 reverse blocks auto-generate -= — still no new syntax)",
42+
"Totality: @pure MUST NOT call impure; @total MUST provably terminate",
43+
"Post-pivot 2026-04-19: extern coproc MUST NOT embed predicate syntax — references PataCL gate by name only"
44+
]
2345

2446
[maintenance-integrity]
2547
fail-closed = true
2648
require-evidence-per-step = true
2749
allow-silent-skip = false
2850
require-rerun-after-fix = true
2951
release-claim-requires-hard-pass = true
52+
no-stubbing = true
53+
54+
[memory-discipline]
55+
# Per user global memory feedback_ask_before_memory_creation.md (2026-04-19):
56+
# agents MUST ASK user before creating new memory files.
57+
# Explicit requests ("remember this", "save this") bypass confirmation.
58+
ask-before-memory-creation = true
59+
spot-fix-immediately = true # per feedback_spot_fix_memorize_immediately.md (updated 2026-04-19 — no longer requires autonomous memory write)
3060

3161
[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
62+
on-enter = """
63+
1. Read 0-AI-MANIFEST.a2ml
64+
2. Read .machine_readable/6a2/STATE.a2ml for current phase
65+
3. Read docs/design-decisions/0001-0006-*.adoc if working on coproc support
66+
4. Acknowledge in first response
67+
"""
68+
on-exit = """
69+
1. Update STATE.a2ml with session outcomes
70+
2. Ask user before creating any new memory (per feedback_ask_before_memory_creation.md)
71+
3. End-of-session marker: 'SAFE TO CLOSE'
72+
"""
73+
on-commit = """
74+
1. Run panic-attack assail (pre-commit)
75+
2. Verify SPDX headers on modified files
76+
3. Verify no banned-pattern introductions
77+
4. Verify Harvard thesis not violated (grep for subtract tokens in data_expr grammar rules)
78+
"""
79+
80+
[cross-repo-coordination]
81+
# JtV depends on PataCL for compile-time decisions (post-pivot).
82+
# Agents must respect the coordination points:
83+
coordination-points = [
84+
"PataCL grammar/semantics change → update JtV ADR-0005 call-site contract if needed",
85+
"JtV coproc use-case expansion → may unblock deferred PataCL features (ordering, list-valued facts) — file a PataCL ADR",
86+
"PataCL version releases → update META.a2ml dependency line"
87+
]
88+
89+
[trust-level]
90+
level = "maximal"
91+
destructive-ops-require-auth = true # git push, branch deletion, memory deletion
92+
93+
[delegation-policy]
94+
# Per estate standing rule feedback_opus_supervise_haiku_first.md:
95+
phase-0-docs-default = "haiku"
96+
phase-1-impl-default = "sonnet (code) / haiku (docs)"
97+
escalation = "opus only as fallback"

.machine_readable/6a2/ECOSYSTEM.a2ml

Lines changed: 72 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,84 @@
33
#
44
# ECOSYSTEM.a2ml — Julia The Viper ecosystem position
55
[metadata]
6-
version = "1.0"
7-
last-updated = "2026-04-11"
6+
version = "1.1"
7+
last-updated = "2026-04-19"
88

99
[project]
1010
name = "Julia The Viper"
11-
purpose = ""
12-
role = ""
11+
purpose = "Harvard-architecture programming language with grammatical Control/Data separation; universal extender for injection-resistant retrofits"
12+
role = "Programming language — user-facing runtime substrate"
1313

1414
[position-in-ecosystem]
15-
category = ""
15+
category = "language"
16+
tier = "user-facing-runtime"
17+
top-level-repo = true
1618

1719
[related-projects]
1820
projects = [
19-
# No related projects recorded
21+
{ name = "patacl",
22+
relationship = "dependency (post-pivot 2026-04-19)",
23+
role = "compile-time decision substrate for extern coproc blocks",
24+
path = "/var/mnt/eclipse/repos/patacl/",
25+
status = "co-designed 2026-04-19; integration lands in JtV Phase 2 (blocked on PataCL Phase 1)",
26+
integration-shape = "extern coproc <gate-name> { item* } references PataCL gates by name; PataCL evaluates predicates and returns liveness + family string",
27+
adr-reference = "docs/design-decisions/0006-patacl-pivot.adoc" },
28+
29+
{ name = "oblibeny",
30+
relationship = "sibling-in-family (MPR inspiration for PataCL, not direct dependency)",
31+
path = "developer-ecosystem/nextgen-languages/oblibeny/",
32+
contribution = "Maximum Principle Reduction, dual-form, reversibility discipline — inherited by PataCL (JtV consumes PataCL)",
33+
status = "reference only" },
34+
35+
{ name = "idris2",
36+
relationship = "potential-dependency (Phase 2+)",
37+
role = "formal ABI layer for coprocessor preconditions (Phase 4 in coproc trajectory)",
38+
status = "planned" },
39+
40+
{ name = "zig",
41+
relationship = "potential-dependency (Phase 2+)",
42+
role = "native emission for extern coproc decls (@Vector / asm volatile / extern)",
43+
status = "planned" },
44+
45+
{ name = "spark-ada",
46+
relationship = "potential-dependency (optional, Phase 5+)",
47+
role = "safety-critical coprocessor contracts — optional path for safety-tier work",
48+
status = "deferred" },
49+
50+
{ name = "hypatia",
51+
relationship = "consumer (existing)",
52+
role = "neurosymbolic scan of JtV repo; consumes A2ML findings",
53+
status = "integrated via .github/workflows/hypatia-scan.yml" }
54+
]
55+
56+
[ecosystem-role]
57+
what-jtv-provides = [
58+
"Harvard-architecture runtime language (Control + Data)",
59+
"v2 reversibility for quantum-simulation / Landauer-efficient computation",
60+
"Extern-coproc surface for ISA-extension accelerators (via PataCL, post-pivot)",
61+
"Teaching platform for grammar-enforced injection-impossibility"
2062
]
63+
what-jtv-consumes = [
64+
"PataCL (compile-time decisions)",
65+
"Rust toolchain (implementation)",
66+
"pest (parser generator)",
67+
"Idris2 / Zig / SPARK (deferred; for native coproc emission)"
68+
]
69+
70+
[supply-chain]
71+
upstream-deps = [
72+
"pest / pest_derive (Rust parsing)",
73+
"tower-lsp (LSP implementation)",
74+
"wasm-pack (WASM backend)"
75+
]
76+
downstream-consumers = [
77+
"(none yet; JtV is a pilot/research language. Future: security-research, legacy-retrofit tooling.)"
78+
]
79+
80+
[governance]
81+
maintainer = "Jonathan D.A. Jewell (single author)"
82+
license = "PMPL-1.0-or-later"
83+
84+
[visibility]
85+
public = true
86+
mirror-targets = "GitHub only (origin); downstream mirroring via hub-and-spoke per hyperpolymath policy"

.machine_readable/6a2/META.a2ml

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,68 @@
33
#
44
# META.a2ml — Julia The Viper meta-level information
55
[metadata]
6-
version = "0.1.0"
7-
last-updated = "2026-04-11"
6+
version = "0.2.0"
7+
last-updated = "2026-04-19"
88

99
[project-info]
1010
license = "PMPL-1.0-or-later"
11+
license-fallback = "MPL-2.0 (automatic legal fallback until PMPL formally recognised)"
1112
author = "Jonathan D.A. Jewell (hyperpolymath)"
13+
author-email = "j.d.a.jewell@open.ac.uk"
14+
git-author-email = "6759885+hyperpolymath@users.noreply.github.com"
1215

1316
[architecture-decisions]
1417
decisions = [
15-
# No ADRs recorded
18+
{ id = "v2-reversibility", title = "v2 reversibility via reverse blocks (5 decisions closed)", status = "design-complete",
19+
path = "docs/language/DESIGN-JTV-V2-REVERSIBILITY.md",
20+
date = "2026-04-12" },
21+
{ id = "coproc-0001", title = "Coprocessor support via pata pathway (Trajectory E)", status = "closed",
22+
path = "docs/design-decisions/0001-coprocessor-pata-pathway.adoc",
23+
date = "2026-04-19" },
24+
{ id = "coproc-0002", title = "Decision sublanguage (SUPERSEDED by Delta pivot)", status = "superseded",
25+
superseded-by = "coproc-0006",
26+
path = "docs/design-decisions/0002-decision-sublanguage.adoc" },
27+
{ id = "coproc-0003", title = "Compile-time fact vocabulary", status = "closed",
28+
path = "docs/design-decisions/0003-compile-time-fact-vocabulary.adoc" },
29+
{ id = "coproc-0004", title = "Pata-eval failure semantics", status = "closed",
30+
path = "docs/design-decisions/0004-pata-eval-failure-semantics.adoc" },
31+
{ id = "coproc-0005", title = "Extern coproc call semantics", status = "closed",
32+
path = "docs/design-decisions/0005-extern-coproc-call-semantics.adoc" },
33+
{ id = "coproc-0006", title = "Delta pivot — PataCL as separate DSL", status = "closed",
34+
path = "docs/design-decisions/0006-patacl-pivot.adoc",
35+
date = "2026-04-19",
36+
supersedes = ["coproc-0002"] }
1637
]
1738

39+
[design-rationale]
40+
# Load-bearing choices for JtV:
41+
# 1. Harvard separation is the whole thesis; do not dilute with embedded sublanguages.
42+
# 2. Addition-only Data: provable totality + injection impossibility.
43+
# 3. Reverse blocks (v2): snapshot-based, linear ReversalToken typing, no new subtract syntax.
44+
# 4. Coprocessor support delegated to PataCL (2026-04-19 Delta pivot) — JtV grammar stays focused on runtime semantics.
45+
# 5. First pilot target: RISC-V — X-ext exercises Idris2/Zig/SPARK stack end-to-end.
46+
1847
[development-practices]
1948
versioning = "SemVer"
20-
documentation = "AsciiDoc"
49+
documentation = "AsciiDoc (human-primary) + A2ML (bot-primary)"
2150
build-tool = "just"
51+
package-manager = "Guix (primary) / Nix (fallback)"
52+
implementation-language = "Rust; SPARK admissible for safety-critical via Idris2-ABI + Zig-FFI"
2253

2354
[maintenance-axes]
2455
scoping-first = true
2556
axis-1 = "must > intend > like"
2657
axis-2 = "corrective > adaptive > perfective"
2758
axis-3 = "systems > compliance > effects"
59+
60+
[language-sublanguages-post-pivot]
61+
# After the 2026-04-19 Delta pivot, JtV Harvard remains BINARY (Control + Data).
62+
# The Decision sublanguage that ADR-0002 introduced as a third lane is extracted
63+
# to PataCL, which is a sibling language, not a sublanguage of JtV.
64+
control = "Turing-complete, runtime, effectful"
65+
data = "total, addition-only, runtime, pure"
66+
patacl-relationship = "sibling language consulted at compile time; not a JtV sublanguage post-pivot"
67+
68+
[cross-repo-dependencies]
69+
patacl = "/var/mnt/eclipse/repos/patacl/ — compile-time decision substrate (post-pivot)"
70+
oblibeny = "developer-ecosystem/nextgen-languages/oblibeny/ — source of MPR discipline that PataCL inherits"
Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,76 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
4-
# NEUROSYM.a2ml — Neurosymbolic integration metadata
4+
# NEUROSYM.a2ml — Neurosymbolic integration metadata for julia-the-viper
55
[metadata]
6-
version = "0.1.0"
7-
last-updated = "2026-04-11"
6+
version = "0.2.0"
7+
last-updated = "2026-04-19"
88

99
[hypatia-config]
1010
scan-enabled = true
1111
scan-depth = "standard" # quick | standard | deep
12-
report-format = "logtalk"
12+
report-format = "a2ml" # Logtalk removed 2026-04-12 — see memory: hypatia-logtalk-removed
13+
# JtV is scanned on every CI run; findings go into .github/hypatia-findings/
1314

1415
[symbolic-rules]
15-
# Custom symbolic rules for this project
16-
# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" }
16+
# Project-specific symbolic rules for Hypatia's logic engine.
17+
rules = [
18+
# Harvard thesis protection
19+
{ name = "jtv-no-control-in-data-expr",
20+
pattern = "data_expr.*if|data_expr.*while|data_expr.*for|data_expr.*assignment",
21+
severity = "blocker",
22+
rationale = "Data expressions MUST NOT contain Control constructs — injection-impossibility depends on this",
23+
fix-hint = "Remove Control construct from Data expression; refactor into Control context" },
24+
25+
{ name = "jtv-no-subtract-in-data-grammar",
26+
pattern = "additive_expr.*\"-\"",
27+
severity = "blocker",
28+
rationale = "Data Language is addition-only. v2 reverse blocks auto-generate -= semantics but do NOT introduce user-visible subtract syntax",
29+
fix-hint = "Revert; discuss in ADR if real need" },
30+
31+
# Post-pivot coproc rules
32+
{ name = "jtv-no-embedded-predicate-in-extern-coproc",
33+
pattern = "extern_coproc_block.*target\\s*\\(|extern_coproc_block.*requires\\s+[a-z]|extern_coproc_block.*encoding\\s+[a-z]",
34+
severity = "blocker",
35+
rationale = "ADR-0006 Delta pivot: extern coproc MUST reference PataCL gate by identifier, not embed predicates",
36+
fix-hint = "Extract predicate into a .pata file; reference gate by name from JtV" },
37+
38+
# v2 reversibility
39+
{ name = "jtv-reversible-block-requires-snapshot",
40+
pattern = "reversible\\s*\\{[^}]*\\}(?!\\s*(reverse|abandon|->))",
41+
severity = "warning",
42+
rationale = "reversible block should produce a ReversalToken (v2 Decision 4 — linear-use-once typing)",
43+
fix-hint = "Use reverse { ... } sugar OR capture token with -> tok" },
44+
45+
# Dangerous patterns (reinforces estate rules)
46+
{ name = "jtv-no-unwrap-to-expect-antipattern",
47+
pattern = "\\.expect\\s*\\(\\s*\"TODO\"",
48+
severity = "warning",
49+
rationale = "per feedback_unwrap_to_expect_antipattern — identical panic with fake debt marker",
50+
fix-hint = "Handle the error properly or revert to .unwrap() with comment explaining why" }
51+
]
1752

1853
[neural-config]
19-
# Neural pattern detection settings
20-
# confidence-threshold = 0.85
21-
# model = "hypatia-v2"
54+
# Neural pattern detection (Phase 2+)
55+
enabled = true
56+
confidence-threshold = 0.85
57+
model = "hypatia-v2"
58+
rationale = "subtle thesis violations (e.g., sneaking arithmetic into Data via trick operators) benefit from neural detection beyond regex"
59+
60+
[proof-integration]
61+
# JtV has formal verification hooks for v2 reversibility and (planned) coproc ABI
62+
proof-obligations = [
63+
"Data Language totality — structural induction on additive_expr (trivial)",
64+
"v2 reverse block semantics — forward-then-reverse = identity (Lean/Coq)",
65+
"Snapshot capture completeness — all locals captured on reversible { } entry",
66+
"Post-pivot: extern coproc gate result faithfulness — JtV's liveness decision matches PataCL's evaluation"
67+
]
68+
preferred-proof-system = "Idris2 (per feedback_idris_over_ephapax)"
69+
alternative-proof-systems = ["Lean4", "Agda", "Coq"]
70+
71+
[dangerous-pattern-exclusion]
72+
banned = [
73+
"believe_me", "unsafeCoerce", "assert_total",
74+
"Admitted", "sorry", "Obj.magic",
75+
".unwrap() → .expect('TODO') anti-pattern"
76+
]

0 commit comments

Comments
 (0)