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
32 changes: 31 additions & 1 deletion .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,37 @@

[metadata]
project = "developer-ecosystem"
last-updated = "2026-06-05"
ecosystem = "hyperpolymath"

[position]
type = "component"
type = "monorepo"
role = "central hub for developer workflow tools — git operations, repo management, scaffolding, developer UX"
parent = "hyperpolymath estate"

[satellites]
# Active satellite project areas within this monorepo
git-tools = ["git-hud", "gitloom", "git-reunify", "git-seo", "polysafe-gitfixer", "vext"]
repo-management = ["oikos", "robot-repo-automaton", "grim-repo", "robot-vacuum-cleaner"]
scaffolding = ["scaffoldia"]
developer-ux = ["rescript-evangeliser (→ nextgen-languages-evangeliser)", "recon-silly-ation", "nickel-config-reporter"]
ecosystems = ["affinescript-ecosystem", "rescript-ecosystem", "zig-ecosystem", "v-ecosystem (legacy/community-handoff)", "deno-ecosystem", "julia-ecosystem", "coq-ecosystem", "idris2-ecosystem", "iser-tools"]
cadre = ["cadre-router", "cadre-tea-router"]
zig-api = ["zig-api (Phase 1+2 complete)"]

[compile-targets]
affinescript = "hyperpolymath/affinescript (primary language compiler)"
typed-wasm = "hyperpolymath/typed-wasm (AffineScript compile target)"

[shared-tools]
standards = "hyperpolymath/standards (RSR, k9-svc, reusable workflows)"
verisimdb = "hyperpolymath/verisimdb (panic-attack scan results, cross-repo analytics)"

[external-relationships]
v-lang-handoff = "Community handoff to alex@vlang.io completed 2026-04-12 (TRANSFER.adoc)"
affinescript-policy = "AffineScript is the go-forward primary language (2026-05-25 policy refresh)"

[status-as-of-2026-06-05]
license-stamps = "MPL-2.0 (flipped from PMPL-1.0-or-later in phases #103-#107)"
contractiles = "6 verbs (must/trust/bust/adjust/dust/intend) — Xfile.a2ml + .ncl for all; tridents deferred"
bot-directives = "root .machine_readable/bot_directives/ correct; satellite sub-project dirs pending rename"
40 changes: 39 additions & 1 deletion .machine_readable/6a2/META.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,44 @@

[metadata]
project = "developer-ecosystem"
last-updated = "2026-06-05"
author = "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"
license = "PMPL-1.0-or-later"
license = "MPL-2.0"
standard = "RSR 2026"

[maintenance-axes]
axis-1 = "must > intend > like"
axis-2 = "corrective > adaptive > perfective"
axis-3 = "systems > compliance > effects"
scoping-first = true
idris-unsound-scan = "believe_me/assert_total"
audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed"
compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"
effects-evidence = "benchmark execution/results and maintainer status dialogue/review"

[architecture]
type = "monorepo"
primary-language = "AffineScript (go-forward); ReScript (legacy migration source)"
build-system = "Deno (JS), Cargo (Rust), Dune (OCaml)"
package-management = "Guix (primary), Nix (fallback), Deno (JS deps)"
container-runtime = "Podman (never Docker)"
task-runner = "just"

[adr]
# ADR entries for load-bearing architectural decisions
# Format: id = "decision (status)"
language-policy-2026-05-25 = "AffineScript as primary application language estate-wide; ReScript legacy until #488 migration (ACCEPTED)"
ts-exemptions = "Three approved TS exemption paths in CLAUDE.md (ACCEPTED)"
bot-directives-rename = "agent_instructions/ → bot_directives/ estate-wide rename (ACCEPTED 2026-06-05)"
contractiles-schema-v2 = "6-verb contractile schema (must/trust/bust/adjust/dust/intend) — lust removed 2026-04-18 (ACCEPTED)"
license-flip-mpl2 = "PMPL-1.0-or-later stamps flipped to MPL-2.0 across estate in phases (#103-#107) (ACCEPTED)"

[governance]
code-review = "PR required; Hypatia reviews for language policy compliance"
merge-bot = "gitbot-fleet (auto-merge on green CI)"
security-scan = "Hypatia security bot; panic-attack assail"
ci = "GitHub Actions; reusable workflows from hyperpolymath/standards"

[notes]
v-lang-status = "Estate-wide V-lang carve-out documented in docs/v-ecosystem/. Community handoff to alex@vlang.io completed 2026-04-12 via TRANSFER.adoc."
rescript-status = "ReScript demoted to legacy 2026-05-25. No new .res files. Existing .res stays until #488 migration assistant is available."
31 changes: 28 additions & 3 deletions .machine_readable/6a2/STATE.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,18 @@
[metadata]
project = "developer-ecosystem"
version = "0.1.0"
last-updated = "2026-04-12"
last-updated = "2026-06-05"
status = "active"

[project-context]
name = "developer-ecosystem"
completion-percentage = 45
phase = "V-lang estate retired; zig-api Phase 1+2 complete; v-ecosystem connectors expanded for community handoff"
completion-percentage = 55
phase = "license-stamps-flipped-to-MPL-2.0; bot_directives-rename-done; contractiles-currency-pass-2026-06-05"

[session-2026-06-05-currency-checkpoint]
summary = "Currency checkpoint (claude/zen-knuth-6hoEt branch). Tasks completed: (1) agent_instructions→bot_directives rename already done at root; external references fixed in 8 files across affinescript-ecosystem and rescript-ecosystem satellite subdirs. (2) Contractiles: INDEX.a2ml + _base.ncl added; missing verb dirs created (adjust/, bust/, intend/) each with Xfile.a2ml + canonical .ncl runner; must/trust/dust runners (must.ncl/trust.ncl/dust.ncl) added alongside existing Xfile.a2ml. (3) svc/k9 templates already present. (4) 6a2 files refreshed. (5) README/EXPLAINME currency-only fixes. (6) License scan flagged."
files-changed = "~20 (currency + contractile files)"
note = "k9.ncl + .manifest.a2ml tridents for must/trust/bust/dust deferred — see DEFERRED section in Intentfile.a2ml"

[session-2026-04-12-v-ecosystem-connectors]
summary = "All 95 v-api-interfaces connectors expanded to ≥201 lines. 45 stubs (previously 100–185 lines) given protocol constants, 5–8 public methods, helpers, and 3–5 tests. Batches: network-protocols (14), app/infra (15), specialized/security (14), imap (1). Commit d98a18c. V-lang work complete for TRANSFER.adoc community handoff to alex@vlang.io."
Expand All @@ -22,3 +27,23 @@ insertions = 8426
grade = "D"
achieved-on = "2026-04-04"
representative-crate = "opm-canonicalizer"
note = "D is the baseline achieved; no regression. Upward movement blocked on test suite expansion and formal verification work."

[language-policy]
status = "active-migration"
primary-language = "AffineScript (go-forward, 2026-05-25 policy)"
legacy-language = "ReScript (existing .res files, no new .res files permitted)"
banned = ["TypeScript", "Python", "Go", "Node.js", "npm", "Bun"]
approved-ts-exemptions = [
"affinescript-ecosystem/affinescript-deno-test/**",
"aggregate-library/src/test-runner.ts",
"rescript-ecosystem/packages/core/runtime-tools/bin/rrt.ts"
]

[contractiles]
index-present = true
_base-present = true
verb-coverage = "must, trust, dust (Xfile.a2ml + .ncl); adjust, bust, intend (Xfile.a2ml + .ncl)"
trident-coverage = "none (k9.ncl + manifest.a2ml deferred for all 6 verbs)"
lust-present = false
note = "All 6 verbs have minimum Xfile.a2ml + runner .ncl. Tridents (k9.ncl + manifest) are template-repo derived work — deferred."
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
= Agent Instructions
= Bot Directives
:toc: preamble

Methodology-aware configuration for AI agents. Read by any AI agent
Expand Down Expand Up @@ -32,8 +32,7 @@ Methodology-aware configuration for AI agents. Read by any AI agent
== Relationship to Other Files

* `AGENTIC.a2ml` says WHAT agents can do (permissions, gating)
* `agent_instructions/` says HOW agents should work (methodology)
* `bot_directives/` says what the gitbot-fleet does (fleet-specific)
* `bot_directives/` says HOW agents should work (methodology)
* `CLAUDE.md` says how Claude specifically should work (Claude-specific)

== Reference
Expand Down
133 changes: 133 additions & 0 deletions .machine_readable/contractiles/INDEX.a2ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# SPDX-License-Identifier: MPL-2.0
# INDEX.a2ml — Contractile Registry
# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
#
# Machine-readable catalogue of all contractile verbs in this template set.
# Consumers (CI scripts, the contractile CLI, Hypatia rules) SHOULD read this
# file to discover available verbs rather than hard-coding the list.
#
# See: docs/CONTRACTILE-SPEC.adoc §Registry

---
id = "contractiles-registry"
version = "2.0.0" # 2.0.0 (2026-04-18): all 6 verbs on trident shape; verb set complete.
spec = "docs/CONTRACTILE-SPEC.adoc"
last_updated = "2026-04-18"
base_schema = ".machine_readable/contractiles/_base.ncl"
meta_schema_status = "pending — see CONTRACTILE-SPEC §validator-meta-schema"

## Verbs

[[verbs]]
name = "adjust"
semantics = "drift tolerances + corrective actions"
trident = [
"adjust/Adjustfile.a2ml",
"adjust/adjust.ncl",
"adjust/adjust.k9.ncl",
]
manifest = "adjust/adjust.manifest.a2ml"
status = "active"
tier = "Yard"
authority = "advisory"
gating = "advisory (continue-with-warnings)"
cardinality = "one per repo"
notes = "Fifth trident instance (2026-04-18). First (Yard, advisory) authority pattern. Specialises in cumulative-drift catchment — tolerance bands + trend tracking across sessions. auto_fix_when_available applies deterministic patches; advisory otherwise."

[[verbs]]
name = "bust"
semantics = "hard-stop / expiry / must-not-run declarations"
trident = [
"bust/Bustfile.a2ml",
"bust/bust.ncl",
"bust/bust.k9.ncl",
]
manifest = "bust/bust.manifest.a2ml"
status = "active"
tier = "Hunt-read-only"
authority = "blocking"
gating = "hard (exit-nonzero)"
cardinality = "one per repo"
notes = "Fourth trident instance (2026-04-18). Completes the blocking-authority triple (must + trust + bust). Specialises in deprecated-path-reintroduction catchment. Injects failures via declared probes and verifies recovery paths."

[[verbs]]
name = "dust"
semantics = "rollback / recovery / deprecation / audit-trail preservation"
trident = [
"dust/Dustfile.a2ml",
"dust/dust.ncl",
"dust/dust.k9.ncl",
]
manifest = "dust/dust.manifest.a2ml"
status = "active"
tier = "Yard"
authority = "advisory"
gating = "advisory (continue-with-warnings)"
cardinality = "one per repo"
notes = "Sixth and FINAL trident instance (2026-04-18) — completes the full verb set. Specialises in audit-trail preservation + rollback-path verification. Destructive actions gated behind --apply flag + per-item approval; dry-run default."

[[verbs]]
name = "intend"
semantics = "north-star (commitments + aspirations)"
trident = [
"intend/Intentfile.a2ml",
"intend/intend.ncl",
"intend/intend.k9.ncl",
]
manifest = "intend/intend.manifest.a2ml"
status = "active"
tier = "Hunt"
authority = "reporting"
gating = "non-gating (continue)"
cardinality = "one per repo"
notes = "First trident instance in the estate (2026-04-18). Reports progress toward committed next-actions AND lists horizon aspirations. Absorbed the deprecated `lust` verb 2026-04-18. Never blocks. Remaining 5 verbs still on file_pair shape until tridents are built."

[[verbs]]
name = "k9"
semantics = "trust-tier templates (EXCEPTION to one-verbfile rule)"
file_pair = [
"k9/template-hunt.k9.ncl",
"k9/template-kennel.k9.ncl",
"k9/template-yard.k9.ncl",
]
status = "exception"
gating = "not applicable"
notes = "k9 is service-automation meta-infrastructure, not a verb contractile. Three trust-tier templates (Kennel/Yard/Hunt). Does not have a Verbfile.a2ml. See CONTRACTILE-SPEC §k9-exception."

# [[verbs]] lust REMOVED 2026-04-18 — name had unwanted associations;
# the horizon/aspiration semantics were always meant to live inside `intend`
# (the north-star verb). The [[wishes]] schema was absorbed into
# intend/Intentfile.a2ml. Any `lust/` dir found in an estate repo is drift
# and should be deleted.

[[verbs]]
name = "must"
semantics = "invariant assertion — release-blocking"
trident = [
"must/Mustfile.a2ml",
"must/must.ncl",
"must/must.k9.ncl",
]
manifest = "must/must.manifest.a2ml"
status = "active"
tier = "Hunt-read-only"
authority = "blocking"
gating = "hard (exit-nonzero)"
cardinality = "one per repo"
notes = "Third trident instance (2026-04-18). Completes the blocking-authority pair with trust: must = concrete + persistent invariants; trust = concrete + ephemeral transactions. Specialises in subtle invariant-erosion (tracking per-session trend; flagging silent regression). Single failure blocks merge. Simplest and most commonly populated verb."

[[verbs]]
name = "trust"
semantics = "security + provenance + safe-hacking"
trident = [
"trust/Trustfile.a2ml",
"trust/trust.ncl",
"trust/trust.k9.ncl",
]
manifest = "trust/trust.manifest.a2ml"
status = "active"
tier = "Hunt"
authority = "blocking"
gating = "hard (exit-nonzero)"
cardinality = "one per repo"
notes = "Second trident instance (2026-04-18). First (Hunt, blocking) verb — hard gate. Primary defense against threat-model misclassification (B1) and 'turn off the firewall' capability-collapse (C2). Inherits on_open negotiation+accountability+translation from intend.k9.ncl v2.0.0; adds threat_model_foregrounding + block_session_close_on_critical_drift."
Loading
Loading