Skip to content

Commit c7bfdda

Browse files
committed
docs(governance): 2026-06-12 checkpoint — bot_directives trio, STATE bump, anchor realignment, wiki refresh
- bot_directives: add hypatia.a2ml (accepted-findings summary from the NEUROSYM waiver registry), gitbot-fleet.a2ml (fleet roster, branch policy per PLAYBOOK merge-gating/branch-hygiene), git-private-farm.a2ml (instant-sync propagation, presence-gated FARM_DISPATCH_TOKEN, name only); extend README.adoc with purpose/precedence/scope and the trio. - 6a2/STATE.a2ml: light-bump to 2026-06-12 with [recent-work] (PRs #68, #69, .scm pointer fixes, gitmodules cleanup, estate merge, codeql cron), [blockers], [next-actions]. - 6a2/PLAYBOOK.a2ml: fix stale pointer to retired root Trustfile path. - 6a2/anchor/ANCHOR.a2ml: convert to TOML-A2ML (content preserved) and add the 2026-06-12 realignment entry. - contractiles/Dustfile.a2ml: drop incorrect scorecard-enforcer deprecation line (file survived the estate merge). - Stale-claim fixes: flake.nix references in QUICKSTART-DEV.adoc, CONTRIBUTING.md, kitchenspeak/proofs/README.adoc; MUST.contractile pointer in QUICKSTART-DEV.adoc. - wiki: Home.md repo-structure pointers (ROADMAP.adoc, LANGUAGES.a2ml), KitchenSpeak added, Project Status note (2026-06-12); Me re-framed as agent-generated projection (not a fourth dialect) in Home.md, Me.md, My-Language-Family.md, Solo.md; 7-tentacles link updated to tentacles-agentic-syllabus.
1 parent bd71ffb commit c7bfdda

15 files changed

Lines changed: 234 additions & 35 deletions

File tree

.machine_readable/6a2/PLAYBOOK.a2ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
[metadata]
99
version = "0.2.0"
10-
last-updated = "2026-06-02"
10+
last-updated = "2026-06-12"
1111

1212
[deployment]
1313
# method = "gitops"
@@ -45,7 +45,7 @@ step-3 = "Act only on findings NOT in the registry, or with disposition = track
4545
step-4 = "If a genuinely new finding appears, triage it; if accepted, add a waiver entry rather than re-fixing each PR."
4646

4747
[branch-hygiene]
48-
# Permitted per the Trustfile carve-out (contractiles/trust/Trustfile.a2ml).
48+
# Permitted per the Trustfile carve-out (.machine_readable/contractiles/Trustfile.a2ml [trust.branch-hygiene]).
4949
delete-merged-branches = "allowed — feature branches whose PR is merged may be deleted (local + remote)"
5050
never-delete = "main, and any open/active branch"
5151
never = "force-push; modify CI secrets; publish"

.machine_readable/6a2/STATE.a2ml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[metadata]
66
project = "nextgen-languages"
77
version = "0.1.0"
8-
last-updated = "2026-06-02"
8+
last-updated = "2026-06-12"
99
status = "active"
1010

1111
[project-context]
@@ -51,3 +51,24 @@ nuget = "spurious nuget dependabot ecosystem removed (no .NET projects)"
5151
scorecard = "publish job split from unprivileged score-gate job"
5252
instant-sync = "repository-dispatch gated on FARM_DISPATCH_TOKEN presence"
5353
hypatia-waivers = "recurring advisory findings triaged in .machine_readable/6a2/NEUROSYM.a2ml [waivers]"
54+
codeql-cron = "weekly -> monthly (standards#288, cherry-picked 2026-06-12)"
55+
56+
[recent-work]
57+
# Landed since the 2026-06-02 STATE refresh (witness: git log).
58+
pr-68 = "KitchenSpeak registered in LANGUAGES.a2ml, Intentfile, Mustfile"
59+
pr-69 = "ReScript banned estate-wide (Hyperpolymath Standard); CLAUDE.md + policy tables updated"
60+
scm-pointer-fix = "stale .scm state-location pointers fixed in ROADMAP and CHANGELOG (196e0ad)"
61+
gitmodules-cleanup = "orphan language-playgrounds submodule entry dropped from .gitmodules (c089dfe)"
62+
readme-updates = "five README.adoc touch-ups on main (91571be..f758d05)"
63+
estate-standardization = "2026-06-12: origin/estate-standardization-20260607 merged — flat contractiles now canonical (content ported from root contractiles/ and .machine_readable/*.contractile, both retired), 6a2/0-AI-MANIFEST + README + anchor/ landed, agent_instructions/ renamed bot_directives/, GOVERNANCE.adoc + MAINTAINERS.adoc + CODEOWNERS added, flake.nix removed (Guix primary), LICENSE normalized to MPL-2.0 text"
64+
governance-checkpoint = "2026-06-12: bot_directives trio (hypatia, gitbot-fleet, git-private-farm), flat Dustfile/Bustfile added, STATE bumped, wiki status note"
65+
66+
[blockers]
67+
kitchenspeak-ci = "Agda proofs hand-verified but not yet machine-checked in CI (ROADMAP Phase 1a)"
68+
kitchenspeak-elevation = "standalone-repo elevation needs repo-create rights (scripts/elevate-kitchenspeak.sh)"
69+
governance-pin = "governance-reusable.yml referenced at @main; SHA pin pending authenticated lookup (NEUROSYM [waivers.governance-reusable-pin])"
70+
71+
[next-actions]
72+
machine-check-proofs = "wire Agda check of kitchenspeak/proofs into CI (Phase 1a)"
73+
claude-md-paths = "maintainer edit needed: .claude/CLAUDE.md references my-lang/frontier-practices/ and my-lang/_exploratory/me-scaffolding/, which are not visible in-tree (paths live inside the my-lang submodule); proposed as issue at the 2026-06-12 checkpoint"
74+
verisim-naming = "integrations/verisim.a2ml vs siblings' verisimdb.a2ml — naming alignment proposed as issue, not renamed unilaterally"
Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
1-
# ⚓ ANCHOR: nextgen-languages
2-
# This is the canonical authority for the nextgen-languages repository.
1+
# SPDX-License-Identifier: MPL-2.0
2+
# ANCHOR.a2ml — canonical authority record for the nextgen-languages repository.
3+
# Converted 2026-06-12 from the previous YAML-style anchor (content preserved;
4+
# format aligned to the estate TOML-A2ML anchor shape).
35

4-
id: "org.hyperpolymath.nextgen-languages"
5-
version: "1.0.0"
6-
clade: "unknown"
7-
status: "active"
6+
[metadata]
7+
version = "1.0.1"
8+
last-updated = "2026-06-12"
89

10+
[anchor]
11+
id = "org.hyperpolymath.nextgen-languages"
12+
schema = "hyperpolymath.anchor/1"
13+
repo = "hyperpolymath/nextgen-languages"
14+
clade = "unknown"
15+
status = "active"
16+
17+
[ssg]
918
# SSG Configuration (Unified boj-server build)
10-
ssg:
11-
engine: "casket"
12-
output_dir: "public"
13-
boj_trigger: true
14-
cartridge: "ssg-mcp"
19+
engine = "casket"
20+
output_dir = "public"
21+
boj_trigger = true
22+
cartridge = "ssg-mcp"
23+
24+
[relationships]
25+
parents = ["org.hyperpolymath.boj-server"]
26+
27+
# Dated realignment entries (most recent last).
1528

16-
# Relationships
17-
parents:
18-
- "org.hyperpolymath.boj-server"
29+
[[realignments]]
30+
date = "2026-06-12"
31+
what = "Estate standardization merge + governance checkpoint"
32+
why = "Adopt the estate-standardization-20260607 layout and refresh machine-readable metadata to current reality"
33+
evidence = "Merge of origin/estate-standardization-20260607 (conflicts on .claude/CLAUDE.md, casket-pages.yml, instant-sync.yml resolved to main's versions); flat contractiles populated with repo-true content ported from the retired root contractiles/{intend,must,trust}/ and .machine_readable/*.contractile files; flat Dustfile/Bustfile added; codeql cron weekly->monthly cherry-pick (standards#288); 6a2/STATE bumped to 2026-06-12; bot_directives trio (hypatia, gitbot-fleet, git-private-farm) added; anchors/ relocated to 6a2/anchor/ and this file converted to TOML-A2ML"

.machine_readable/bot_directives/README.adoc

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
// SPDX-License-Identifier: MPL-2.0
22
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
3-
= Agent Instructions
3+
= Bot Directives
44
:toc: preamble
55

6-
Methodology-aware configuration for AI agents. Read by any AI agent
7-
(Claude, Gemini, Copilot, etc.) at session start.
6+
Per-repo directives for automated agents, plus methodology-aware
7+
configuration read by any AI agent (Claude, Gemini, Copilot, etc.) at
8+
session start.
9+
10+
*Precedence:* maintainer > these directives > bot defaults.
11+
12+
*Scope:* applies to the Hypatia scanner, the gitbot fleet, and
13+
.git-private-farm propagation, as well as interactive AI sessions.
14+
15+
(Directory renamed from `agent_instructions/` to `bot_directives/`
16+
by the 2026-06 estate standardization.)
817

918
== Files
1019

@@ -20,6 +29,15 @@ Methodology-aware configuration for AI agents. Read by any AI agent
2029

2130
| `debt.a2ml`
2231
| Meander debt — things found but not fixed, carried between sessions
32+
33+
| `hypatia.a2ml`
34+
| Hypatia scanner directives — accepted findings (waiver summary), prohibited actions
35+
36+
| `gitbot-fleet.a2ml`
37+
| Gitbot fleet roster, branch policy, per-bot allow/deny
38+
39+
| `git-private-farm.a2ml`
40+
| .git-private-farm propagation: workflow, presence-gated secret (name only), rotation
2341
|===
2442

2543
== How Agents Use These
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# git-private-farm.a2ml — propagation directives for .git-private-farm.
3+
# Precedence: maintainer > these directives > bot defaults.
4+
5+
[metadata]
6+
repo = "nextgen-languages"
7+
last-updated = "2026-06-12"
8+
owner = "hyperpolymath"
9+
10+
[propagation]
11+
workflow = ".github/workflows/instant-sync.yml"
12+
enabled = true
13+
target = "hyperpolymath/.git-private-farm"
14+
event-type = "propagate"
15+
# Secret NAME only — the value lives in GitHub repo secrets, never here.
16+
secret = "FARM_DISPATCH_TOKEN"
17+
# The dispatch step is gated on token presence (job-level env + step-level
18+
# `if`), so forks / environments without the secret skip cleanly instead of
19+
# failing with an empty token.
20+
presence-gated = true
21+
triggers = ["push to main/master", "release published"]
22+
23+
[never-propagate]
24+
items = ["secrets", "unmerged branches", "work-in-progress"]
25+
26+
[on-token-rotation]
27+
command = "gh secret set FARM_DISPATCH_TOKEN --repo hyperpolymath/nextgen-languages"
28+
note = "name only — paste the new value interactively; never commit it"
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# gitbot-fleet.a2ml — per-repo directives for the gitbot fleet.
3+
# Precedence: maintainer > these directives > bot defaults.
4+
5+
[metadata]
6+
repo = "nextgen-languages"
7+
last-updated = "2026-06-12"
8+
owner = "hyperpolymath"
9+
10+
[fleet]
11+
bots = ["rhodibot", "echidnabot", "sustainabot", "glambot", "seambot", "finishbot"]
12+
rhodibot = "git operations"
13+
echidnabot = "code quality"
14+
sustainabot = "dependency updates"
15+
glambot = "documentation"
16+
seambot = "integration"
17+
finishbot = "task completion"
18+
19+
[branch-policy]
20+
working-branch-pattern = "claude/* or bot/<botname>/*"
21+
draft-PRs-only = true
22+
ci-green-before-merge = true
23+
# Per 6a2/PLAYBOOK.a2ml [merge-gating]: blocking checks are governance/*,
24+
# scan/*, analyze, semgrep, dogfood, validators; the Hypatia advisory is
25+
# non-blocking and MUST NOT gate the merge.
26+
never-touch = [
27+
".claude/CLAUDE.md",
28+
"kitchenspeak/proofs/",
29+
"LICENSE",
30+
".github/workflows/ (without explicit maintainer approval)",
31+
]
32+
# Branch hygiene per 6a2/PLAYBOOK.a2ml [branch-hygiene] and the Trustfile
33+
# carve-out: merged PR branches may be deleted; main and any open/active
34+
# branch never; force-push always denied.
35+
36+
[per-bot.rhodibot]
37+
allow = ["branch create", "commit", "open draft PR", "delete merged PR branches"]
38+
deny = ["force-push", "push to main", "delete main or open branches"]
39+
40+
[per-bot.echidnabot]
41+
allow = ["lint", "format", "report"]
42+
deny = ["weaken or delete tests", "edit kitchenspeak/proofs/ (proofs lead implementation, ADR 0001)"]
43+
44+
[per-bot.sustainabot]
45+
allow = ["dependency bump PRs (SHA-pinned actions only)"]
46+
deny = ["unpinned action references", "npm/bun/yarn/pnpm dependencies (Deno only)"]
47+
48+
[per-bot.glambot]
49+
allow = ["docs and wiki edits (AsciiDoc stays AsciiDoc, MD stays MD)"]
50+
deny = ["rewriting governance docs wholesale"]
51+
52+
[per-bot.seambot]
53+
allow = ["integration wiring under .machine_readable/integrations/"]
54+
deny = ["vendoring echo-types or Hypatia rulesets here (change them in their source repos)"]
55+
56+
[per-bot.finishbot]
57+
allow = ["close out task checklists; mark PRs ready when CI is green"]
58+
deny = ["merging draft/WIP PRs"]
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# hypatia.a2ml — per-repo directives for the Hypatia scanner.
3+
# Precedence: maintainer > these directives > bot defaults.
4+
5+
[metadata]
6+
repo = "nextgen-languages"
7+
last-updated = "2026-06-12"
8+
owner = "hyperpolymath"
9+
10+
[scanner]
11+
ignore-file = ".hypatia-ignore"
12+
ignore-file-present = false
13+
workflow = ".github/workflows/hypatia-scan.yml"
14+
ruleset-location = "hyperpolymath/standards (hypatia-scan-reusable.yml) — change rules there, not here"
15+
scan-is-blocking = false
16+
17+
[accepted-findings]
18+
# Canonical registry: .machine_readable/6a2/NEUROSYM.a2ml [waivers].
19+
# Look findings up there by rule + file BEFORE acting; if listed, do not
20+
# auto-fix. Summary of the current entries:
21+
registry = ".machine_readable/6a2/NEUROSYM.a2ml"
22+
reusable-caller-timeout = "missing_timeout_minutes on governance/hypatia-scan/mirror/scorecard/secret-scanner.yml — false-positive: these jobs call reusable workflows and GitHub Actions rejects timeout-minutes on reusable-workflow caller jobs"
23+
governance-reusable-pin = "unpinned_action on governance.yml — tracked: standards governance-reusable.yml referenced at @main pending SHA pin via authenticated lookup"
24+
scorecard-publish-split = "scorecard_publish_with_run_step on scorecard-enforcer.yml — addressed: privileged publish job split from unprivileged score-gate job; detector pattern mismatch"
25+
instant-sync-secret-gate = "secret_action_without_presence_gate on instant-sync.yml — addressed: dispatch step IS gated on FARM_DISPATCH_TOKEN presence (job-level env + step-level if)"
26+
agda-postulate-trusted-base = "agda_postulate on kitchenspeak/proofs/agda/{Dough,PoachedEgg}.agda — by-design: KitchenSpeak's documented trusted base, annotated inline (AXIOM:) and enumerated in PROOF-NEEDS.md"
27+
28+
[prohibited-actions]
29+
auto-delete-branches = false
30+
auto-merge = false
31+
modify-workflows = false
32+
escalation = "open an issue, do not spam PR comments"

.machine_readable/contractiles/Dustfile.a2ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,3 @@ me-static-dialect = "Me as a static dialect retired; Me is an agent-generated pr
3939
seven-tentacles-submodule = "7-tentacles pedagogy submodule pulled out to top-level tentacles-agentic-syllabus repo"
4040
root-contractiles = "root contractiles/{intend,must,trust}/ and .machine_readable/*.contractile retired 2026-06-12 by estate standardization; content ported into .machine_readable/contractiles/*.a2ml flat files"
4141
flake-nix = "flake.nix removed by the 2026-06 estate-standardization wave (Guix guix.scm is the primary package manifest)"
42-
scorecard-enforcer = "scorecard-enforcer.yml retired by estate standardization (scorecard.yml remains)"

CONTRIBUTING.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ nextgen-languages/
4545
├── MAINTAINERS.md
4646
├── README.adoc
4747
├── SECURITY.md
48-
├── flake.nix # Nix flake (Perimeter 1)
4948
└── Justfile # Task runner (Perimeter 1)
5049
```
5150

QUICKSTART-DEV.adoc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ nextgen-languages/
6262
├── .machine_readable/ # Checkpoint files (STATE, META, ECOSYSTEM)
6363
├── Justfile # Task runner recipes
6464
├── guix.scm # Guix environment
65-
├── flake.nix # Nix environment (fallback)
6665
└── 0-AI-MANIFEST.a2ml # AI agent entry point
6766
----
6867

@@ -89,7 +88,7 @@ just panic-scan # No new security issues
8988

9089
== Contractile Invariants
9190

92-
Read `.machine_readable/MUST.contractile` before making changes.
91+
Read `.machine_readable/contractiles/Mustfile.a2ml` before making changes.
9392
Key invariants that must never be violated:
9493

9594
{{MUST_INVARIANTS}}

0 commit comments

Comments
 (0)