Skip to content

Commit 1f9499a

Browse files
hyperpolymathclaude
andcommitted
Merge origin/main into claude/quirky-gauss-GaGZo
Resolve the single Smoke.agda aggregator conflict: keep both the PR's RankDoubledLadder import block (Slice 1 doubled-ladder rank foundation) and main's Slice-3 prerequisite/headline blocks. Pure import-ordering; no proof content changed on either side. Verified against CI-pinned deps (agda-stdlib v2.3 + absolute-zero@3ff5cee): tools/check-guardrails.sh OK (165 modules); `agda All.agda` and `agda Smoke.agda` both typecheck clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 parents 6f5e9f1 + 2bedb85 commit 1f9499a

24 files changed

Lines changed: 1765 additions & 0 deletions
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// SPDX-License-Identifier: MPL-2.0
2+
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <6759885+hyperpolymath@users.noreply.github.com>
3+
= Agent Instructions (echo-types)
4+
:toc: preamble
5+
6+
Methodology-aware configuration for AI agents working on echo-types. Read by
7+
any AI agent (Claude, Gemini, Copilot, etc.) at session start, alongside the
8+
top-level `CLAUDE.md` (which carries the authoritative current-rung-state) and
9+
`.machine_readable/6a2/`.
10+
11+
== Files
12+
13+
[cols="1,3"]
14+
|===
15+
| File | Purpose
16+
17+
| `methodology.a2ml`
18+
| Default mode, the proof-discipline invariants (`--safe --without-K`, zero
19+
postulates, ceilings), priority weights, convergent budget, known constraints.
20+
21+
| `coverage.a2ml`
22+
| Session coverage tracking — which workstreams/modules were visited, what was
23+
skipped, what has open MUSTs.
24+
25+
| `debt.a2ml`
26+
| Meander debt — proof obligations and chores found but not discharged, carried
27+
between sessions.
28+
|===
29+
30+
== How Agents Use These
31+
32+
1. Read `CLAUDE.md` first — it has the live rung-state and the "DO NOT reopen" lists.
33+
2. Read `methodology.a2ml` — know mode, invariants, ceilings.
34+
3. Read `coverage.a2ml` and `debt.a2ml` — know what was visited and what is outstanding.
35+
4. At session end, update `coverage.a2ml` and `debt.a2ml`, and (on a landed rung)
36+
the `CLAUDE.md` current-rung-state + the `6a2/STATE.a2ml` current-state block.
37+
38+
== Relationship to Other Files
39+
40+
* `6a2/AGENTIC.a2ml` says WHAT agents can do (gating, escalation, redo-traps).
41+
* `agent_instructions/` says HOW agents should work (methodology).
42+
* `bot_directives/` says what the gitbot-fleet / Hypatia does (fleet-specific).
43+
* `CLAUDE.md` says how Claude specifically should work (Claude-specific, authoritative state).
44+
45+
== Reference
46+
47+
ADR-002 in `standards/agentic-a2ml/docs/ADR-002-methodology-layer.adoc`.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <6759885+hyperpolymath@users.noreply.github.com>
3+
#
4+
# coverage.a2ml — Session coverage tracking (echo-types)
5+
# Updated at the end of each AI agent session.
6+
# Tracks which workstreams/modules were visited and which have open MUSTs.
7+
#
8+
# Reference: ADR-002 in standards/agentic-a2ml/docs/
9+
10+
[metadata]
11+
version = "1.0.0"
12+
last-updated = "2026-06-12"
13+
14+
# ============================================================================
15+
# COVERAGE STATE
16+
# ============================================================================
17+
# "Components" here = the three workstreams + the cross-repo bridge surface.
18+
# Authoritative per-rung detail lives in CLAUDE.md current-rung-state.
19+
20+
[coverage]
21+
total-components = 4
22+
visited-components = 4
23+
coverage-percent = 100
24+
note = "All three workstreams + the bridge ledger have current status; the open work is named in debt.a2ml."
25+
26+
# ============================================================================
27+
# VISITED COMPONENTS (workstream → last-known status)
28+
# ============================================================================
29+
30+
[coverage.visited.composition-track]
31+
date = "2026-04-28"
32+
status = "landed"
33+
notes = "Echo-comp-iso + cancel-iso + pentagon (Echo-comp-pent-Σ-assoc) all packaged as _↔_."
34+
35+
[coverage.visited.ordinal-track]
36+
date = "2026-05-30"
37+
status = "partial"
38+
notes = "Slice 3+4 Route A arc (PRs #165-#170): RankMonoUnion umbrella + wf of _<ᵇᵘ_ via rank-embedding transport (#170). Target: Bachmann-Howard."
39+
40+
[coverage.visited.establishment-track]
41+
date = "2026-05-27"
42+
status = "partial"
43+
notes = "Pillars A-D complete (2026-05-17); Pillar F closed (2026-05-20); Tier-1+2+3 spine + audience moves + EchoCanonicalIdentitySuite. Pillar E open."
44+
45+
[coverage.visited.cross-repo-bridges]
46+
date = "2026-06-02"
47+
status = "ledgered"
48+
notes = "cross-repo-bridge-status.md current: CNO done, Ephapax NARROW, EchoTypes.jl shipped, Janus name-only, Tropical citation-level, Valence/Ochrance exploratory."
49+
50+
# ============================================================================
51+
# SKIPPED / OPEN MUSTS (P1 inputs for next session's Phase 0)
52+
# ============================================================================
53+
54+
[coverage.skipped-musts.ordinal-unbudgeted-wf]
55+
priority = "P1"
56+
issue = "Unbudgeted _<ᵇʳᶠ_ global WF — eliminate the ℕ budget from wf-<ᵇʳᶠᵇ without leaving --safe --without-K. Solo, not swarmable; named next bottleneck."
57+
discovered = "2026-05-20"
58+
59+
[coverage.skipped-musts.full-buchholz-constructor-set]
60+
priority = "P2"
61+
issue = "K-limited shared-binder cases (<ᵇ-ψα, <ᵇ-+2) beyond the admitted core; push surface-route WF back into Order.agda's main _<ᵇ_."
62+
discovered = "2026-04-28"
63+
64+
# ============================================================================
65+
# CHERRY-PICKING AUDIT (accountability for the weighted priority system)
66+
# ============================================================================
67+
# At session end agents report whether they chose easy work over hard work.
68+
#
69+
# [coverage.cherry-picking]
70+
# easy-high-completed = 0
71+
# hard-high-completed = 0
72+
# assessment = "..."
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <6759885+hyperpolymath@users.noreply.github.com>
3+
#
4+
# debt.a2ml — Meander debt list (echo-types)
5+
# Proof obligations and chores found but not discharged. Carried between
6+
# sessions; becomes the next session's Phase 0 input.
7+
#
8+
# Items are consumed (removed) when discharged. New items added at session end.
9+
#
10+
# Reference: ADR-002 in standards/agentic-a2ml/docs/
11+
12+
[metadata]
13+
version = "1.0.0"
14+
last-updated = "2026-06-12"
15+
16+
# ============================================================================
17+
# SHOULD — would fix next wave
18+
# ============================================================================
19+
20+
[[debt.should]]
21+
component = "ordinal-track / Ordinal.Buchholz"
22+
issue = "Unbudgeted _<ᵇʳᶠ_ global WF: eliminate the explicit ℕ budget from wf-<ᵇʳᶠᵇ without leaving --safe --without-K."
23+
effort = "hard"
24+
impact = "high"
25+
discovered = "2026-05-20"
26+
note = "Solo, not swarmable; the named next bottleneck toward Bachmann-Howard."
27+
28+
[[debt.should]]
29+
component = "ordinal-track / Order.agda"
30+
issue = "Push the surface-route WF back into Order.agda's main _<ᵇ_ package; close the K-limited shared-binder cases (<ᵇ-ψα, <ᵇ-+2)."
31+
effort = "hard"
32+
impact = "high"
33+
discovered = "2026-04-28"
34+
35+
[[debt.should]]
36+
component = "establishment-track / docs/echo-types/paper.adoc"
37+
issue = "Clear remaining [EXPAND] tags (related work; evaluation; ordinal consumer-evidence appendix)."
38+
effort = "medium"
39+
impact = "medium"
40+
discovered = "2026-05-17"
41+
note = "Author-driven; the ordinal appendix is gated on the Bachmann-Howard milestone. Do NOT auto-run outreach / Zenodo / packaging."
42+
43+
[[debt.should]]
44+
component = "establishment-track / EchoImageFactorization"
45+
issue = "Image factorisation (epi, mono) earn-back requires propositional truncation (Cubical Agda, or a postulated ∥_∥ interface with scoped honest-scope). Substantial design decision."
46+
effort = "hard"
47+
impact = "medium"
48+
discovered = "2026-05-27"
49+
50+
# ============================================================================
51+
# COULD — would fix eventually
52+
# ============================================================================
53+
54+
[[debt.could]]
55+
component = "establishment-track / decoration zoo"
56+
issue = "Wire the remaining decoration modules (Cost / Search / Indexed / Epistemic) as ResidueForm / DecorationStructure instances; mechanical per-module work."
57+
effort = "medium"
58+
impact = "low"
59+
discovered = "2026-05-27"
60+
61+
[[debt.could]]
62+
component = "establishment-track / Q2.1 truncation generalisation"
63+
issue = "Generalise echo-not-prop: for non-injective f with two distinct preimages of y, is-prop (Echo f y) → ⊥. High-leverage for the truncation distinctness argument but currently low-priority."
64+
effort = "medium"
65+
impact = "medium"
66+
discovered = "2026-04-29"
67+
68+
[[debt.could]]
69+
component = "rsr-conformance (root Intentfile)"
70+
issue = "Pin @sha256: digests on stapeln.toml + Containerfile base images; resolve readme.adoc/README.md and roadmap.adoc/roadmap-gates.adoc duplication; migrate doc-format-rule .md → .adoc."
71+
effort = "easy"
72+
impact = "low"
73+
discovered = "2026-04-28"
74+
75+
[[debt.could]]
76+
component = "cross-repo bridges / JanusKey"
77+
issue = "Rewrite EchoJanusBridge.JanusOp from the 4-variant local enum to the 8-variant Idris2 OpKind (Copy/Move/Delete/Modify/Obliterate/KeyGen/KeyRotate/KeyRevoke); add IsFileOp/IsKeyOp analogues; re-pin in Smoke.agda."
78+
effort = "medium"
79+
impact = "low"
80+
discovered = "2026-06-02"
81+
82+
# ============================================================================
83+
# PARKED — explicitly out of scope (do not treat as debt to clear)
84+
# ============================================================================
85+
# - Recipe extension (coupled state across axes): v0.2+, NOT EI-2 follow-up. File as EI-3 when v0.2 begins.
86+
# - Full 2D iff for recipe-non-triviality: not formalisable in safe Agda without postulates (PATH B accepted).
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <6759885+hyperpolymath@users.noreply.github.com>
3+
#
4+
# methodology.a2ml — AI agent methodology configuration (echo-types)
5+
# Declares how agents should approach work in this Agda proof library.
6+
# Read at session start by any AI agent, alongside CLAUDE.md.
7+
#
8+
# Reference: ADR-002 in standards/agentic-a2ml/docs/
9+
10+
[metadata]
11+
version = "1.0.0"
12+
last-updated = "2026-06-12"
13+
spec = "https://github.com/hyperpolymath/standards/blob/main/agentic-a2ml/docs/ADR-002-methodology-layer.adoc"
14+
15+
# ============================================================================
16+
# MODE SELECTION
17+
# ============================================================================
18+
# convergent: find gaps, fill them, build infrastructure
19+
# divergent: find what's strongest, push it further (research/proof)
20+
# hybrid: audit a slice of budget, then focus on top MUSTs
21+
#
22+
# echo-types is a research proof library: the default is divergent — deepen
23+
# the structured-loss identity (canonical-identity spine, ordinal milestone),
24+
# do not broaden into parallel formalisms.
25+
26+
[methodology]
27+
default-mode = "divergent"
28+
ring-ceiling = 2 # Hard ceiling for ring expansion (0-3)
29+
wave-cap = 2 # Max waves before requiring user "keep going"
30+
spike-required = true # Every session must land verified Agda, not just designs
31+
32+
# ============================================================================
33+
# PROOF INVARIANTS (the riverbanks — non-negotiable)
34+
# ============================================================================
35+
36+
[methodology.proof-invariants]
37+
safe-without-k = true # --safe --without-K on every module
38+
postulate-ceiling = 0 # zero in load-bearing tracks (outside Ordinal/)
39+
believe-me-ceiling = 0 # no believe_me / primTrustMe / primEraseEquality
40+
escape-hatch-ceiling = 0 # no sorry / Admitted / unsafeCoerce / Obj.magic
41+
escape-pragma-ceiling = 0 # no TERMINATING / NON_TERMINATING / allow-unsolved-metas
42+
funext-policy = "explicit-parameter-only" # never a postulate; isolated from the trusted base
43+
pin-every-headline = true # each headline pinned in Smoke.agda via `using`
44+
wire-every-module = true # each module in All.agda; orphans are dead code
45+
kernel-cone-guard = "scripts/kernel-guard.sh"
46+
47+
# ============================================================================
48+
# PRIORITY WEIGHTS
49+
# ============================================================================
50+
# MUST (3x): blocking current proof work → fix immediately
51+
# SHOULD (2x): degrading quality of current work → fix if in zone
52+
# COULD (1x): improving adjacent work → add to debt list
53+
54+
[methodology.priority-weights]
55+
must = 3
56+
should = 2
57+
could = 1
58+
59+
# ============================================================================
60+
# CONVERGENT BUDGET (when mode = convergent or hybrid)
61+
# ============================================================================
62+
63+
[methodology.convergent-budget]
64+
structural = 70 # new modules / proofs / wiring / Smoke pins
65+
corrective = 20 # broken imports, stale doc tags, drift
66+
perfective = 10 # SPDX headers, doc polish, formatting
67+
68+
# ============================================================================
69+
# UNIQUE STRENGTH (when mode = divergent)
70+
# ============================================================================
71+
72+
[methodology.unique-strength]
73+
description = "Echo as the proof-relevant fiber of structured loss: Echo f y := Σ (x : A) , (f x ≡ y), characterised as a reindexing modality (coeffect/quantitative lineage). The strength is the machine-checked, --safe --without-K, postulate-free identity claim plus its honest matched-negatives."
74+
deepen-not-broaden = true
75+
76+
# ============================================================================
77+
# DIVERGENT INVARIANTS
78+
# ============================================================================
79+
# Test before any divergent action:
80+
# "Does this deepen the existing identity, or add a parallel strength?"
81+
# If parallel → stop. Note as cross-project insight.
82+
83+
[methodology.divergent-invariants]
84+
rules = [
85+
"Agda only for the formal core — no Lean4 / Coq / Idris2 inside this repo (cross-prover work is citation-level bridges only).",
86+
"Never weaken --safe or --without-K to land a proof.",
87+
"Never introduce a postulate in a load-bearing track; exploratory truncation postulates, if any, go in docs/proof-debt.md and stay out of All.agda's trusted closure.",
88+
"Honest scope: every identity claim ships with its matched-negatives; narrow-true beats broad-easy.",
89+
"Do not reopen retracted claims (R-2026-05-18) or closed gates (Pillars A-D, F1-F4, EI-2).",
90+
]
91+
language-invariant = "agda"
92+
93+
# ============================================================================
94+
# KNOWN CONSTRAINTS (help Phase 0 find the critical chain faster)
95+
# ============================================================================
96+
97+
[methodology.known-constraints]
98+
constraints = [
99+
"stdlib >= 2.3 is required (apt's 1.7.3 lacks Data.Product.Base) — see CLAUDE.md § Build.",
100+
"The ordinal track is solo, not swarmable; the unbudgeted _<ᵇʳᶠ_ global WF is the named next bottleneck.",
101+
"Multiple Claude sessions may run concurrently — respect declared territory; use `--only <paths>` if both commit before sync.",
102+
"Pillar E paper [EXPAND] tags are author-driven; the ordinal consumer-evidence appendix is gated on the Bachmann-Howard milestone.",
103+
]
104+
105+
# ============================================================================
106+
# STATE FILE VALIDATION
107+
# ============================================================================
108+
109+
[methodology.state-validation]
110+
reject-if-contains = ["{{PLACEHOLDER}}", "rsr-template-repo"]
111+
reject-if-project-name-mismatch = true
112+
staleness-threshold-days = 120
113+
authoritative-state = "CLAUDE.md (current-rung-state) + .machine_readable/6a2/STATE.a2ml (current-state block)"
114+
fallback-files = ["roadmap-gates.adoc", "roadmap.adoc", "docs/echo-types/MAP.adoc", "README.md"]

0 commit comments

Comments
 (0)