Skip to content

Commit 79fd29c

Browse files
claudehyperpolymath
authored andcommitted
docs(affirmation): krl AFFIRMATION (real gate run) + scoped scope table
AFFIRMATION.adoc - No-Bullshit proof-trust attestation for krl at d8b9768, from gate bodies run THIS session as raw bash (just absent): MUST + licence/secrets TRUST pass; verify-template + validate-rsr + container-pinning FAIL loudly (half-instantiated rsr-template - Justfile name, {project-name} in EXPLAINME, ~8 placeholder files, missing ANCHOR.a2ml + src/interface/abi); PROOF-STATUS 0/7. Real content: spec/grammar.ebnf + src/{core,definitions,errors,bridges}. Toolchain + signature limits disclosed; owner signs on commit. docs/identity-fabric/musts-intends-wishes.adoc - krl's own Must/Intend/Wish + marked QuandleDB crossover + cross-repo wiring (2026-06-19 estate rule). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TXizM5c1Yd9HWf7Y15YH2
1 parent 99271a9 commit 79fd29c

2 files changed

Lines changed: 304 additions & 0 deletions

File tree

AFFIRMATION.adoc

Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
// SPDX-License-Identifier: CC-BY-SA-4.0
2+
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
3+
= AFFIRMATION — krl, as of 2026-06-19
4+
:toc: macro
5+
:toclevels: 2
6+
7+
_the No-Bullshit file: what we affirm was true and checkable at this moment_
8+
9+
[NOTE]
10+
====
11+
*Genre.* An *affirmation* is a solemn declaration of the truth of a statement,
12+
made by someone who _declines to swear an oath_. That is exactly what this is:
13+
our truth-as-best-believed at a stamped instant — binding on our honesty, not a
14+
claim of infallibility. It is not the README and not the EXPLAINME:
15+
16+
[cols="1,3,2",options="header"]
17+
|===
18+
| File | Answers | Tense
19+
| `README.adoc` | _Where is this going, and why?_ — KRL's purpose and steering | future / aspirational
20+
| `EXPLAINME.adoc` | _How is it built, and what's the evidence?_ | descriptive / mechanism
21+
| *`AFFIRMATION.adoc`* (this file) | _What can we honestly affirm was *true and checkable* at a stamped moment?_ | a frozen instant, falsifiable
22+
|===
23+
24+
Every repo in the estate carries one (`AFFIRMATION.adoc`), per the 2026-06-19
25+
estate rule. It is deliberately small, dated, and signed, so a reader can hold
26+
us to exactly what we affirmed, when we affirmed it.
27+
====
28+
29+
toc::[]
30+
31+
== What this is, and how it is designed to work
32+
33+
*What it is.* A short, dated, jointly-signed snapshot of what we can _honestly
34+
and verifiably_ claim about the krl repo at one exact commit. Nothing here is
35+
marketing (that is the README). This file is the receipt.
36+
37+
*How it is designed to work.*
38+
39+
. *Ground truth, not memory.* Every gate result below was produced by _running
40+
the gate this session_. *Material caveat (read it):* `just` is *not installed*
41+
in this session, so the gate **recipe bodies were executed directly as bash**
42+
rather than via `just`. The logic run is the recipe logic; the orchestration
43+
was not. A full `just`-driven run in the maintainer's environment is the
44+
authoritative form.
45+
. *A frozen anchor.* The file names the exact commit SHA, branch, and toolchain
46+
(see <<Verifiable anchor>>). Move the SHA and this file becomes a draft until
47+
re-run.
48+
. *A real signature.* Authoritatively, this is landed by the maintainer's
49+
*signed git commit*. The AI engineering party *cannot* GPG-sign and does not
50+
claim to; the signature line is the owner's to complete.
51+
52+
*We are fallible.* This file is our best honest belief, not a proof of its own
53+
correctness. Treat it as a falsifiable claim.
54+
55+
== The epistemic contract (read this before you trust _or_ attack)
56+
57+
This document records our *best joint belief* at the timestamp below. It is
58+
*not a guarantee of correctness.*
59+
60+
*No intentional overclaim.* That is the only guarantee. Where a gate passed we
61+
say "PASS"; where it failed we say "FAIL" and why; where the repo is
62+
unconfigured RSR-template residue we say so plainly; where a check was *not run*
63+
this session (absent toolchain) we say "not run", not "passed".
64+
65+
*Standing invitation to refute.* Read this at the stamped commit, reproduce the
66+
checks in <<reproduce,Reproduce it yourself>>, then tell us where the
67+
discrepancy is against the artefact as it stood at this moment. An attack that
68+
skips reproduction is attacking a strawman of a different date.
69+
70+
== Verifiable anchor
71+
72+
[cols="1,3"]
73+
|===
74+
| *Repo* | `hyperpolymath/krl` — KRL (Knot Resolution Language), the resolution-DSL surface of the KRL stack
75+
| *Branch* | `claude/practical-newton-9eFe2` (feature branch; this affirmation is *not* anchored to `main`)
76+
| *Commit (HEAD)* | `d8b9768d294d4339bc4fca3d2e7b787e3ad610bd`
77+
| *Permalink* | https://github.com/hyperpolymath/krl/tree/d8b9768d294d4339bc4fca3d2e7b787e3ad610bd
78+
| *Verified* | 2026-06-19 (checks run this session; precise UTC second not captured — date, not claimed instant)
79+
| *Working-tree delta* | Clean (`git status --porcelain` empty) at verification, except this untracked `AFFIRMATION.adoc`.
80+
| *Toolchain (what was present)* | `git 2.43.0`, `Agda 2.6.3`. *Absent this session:* `just`, `deno`, `julia`, `lean`, `idris2`.
81+
| *Run method* | Gate *recipe bodies executed directly as bash* (no `just`). See the caveat above.
82+
| *HEAD commit signature* | *Not signed by the AI party.* Authoritative signature is the maintainer's signed commit that lands this file.
83+
|===
84+
85+
[IMPORTANT]
86+
If you are reading this at a _later_ commit, the claims may have drifted. Re-run
87+
<<reproduce>> and write a fresh affirmation; do not trust a stale one.
88+
89+
== Companion documents and repo metadata (cross-check)
90+
91+
* *`README.adoc`* — *present and customised*: title `= KRL — Knot Resolution
92+
Language`. Consistent with the tree (real grammar + `src/` content below).
93+
* *`EXPLAINME.adoc`* — *present but carries template residue*: its first heading
94+
is `= {project-name} — Show Me The Receipts` — the `{project-name}` token is
95+
*unreplaced*. Honest drift: EXPLAINME is not yet instantiated.
96+
* *`0-AI-MANIFEST.a2ml`* — present.
97+
* *GitHub repo description / topics* — *not fetched this session* (no `gh`
98+
available). Not cross-checked; do not read this file as validating the public
99+
description.
100+
101+
== The honest state (one breath)
102+
103+
krl is a *language-in-design on RSR-template scaffolding*. There is *real* KRL
104+
content — a 114-line `spec/grammar.ebnf`, a grammar overview, and a populated
105+
`src/` (`core`, `definitions`, `errors`, `bridges`, `contracts`, `aspects`,
106+
`interface`) — but the repo is *half-instantiated from `rsr-template-repo`*: the
107+
`Justfile` still carries the template's name and `# TODO` stub recipes, several
108+
files still hold `{{PLACEHOLDER}}` tokens, and there are no discharged proofs.
109+
The `MUST` and licence/secrets `TRUST` gates pass; `verify-template` and
110+
`validate-rsr` fail loudly. Exactly the honest state, fenced below.
111+
112+
== What is solid (and how we checked)
113+
114+
* *`MUST` gate — PASS (all four).* Run as bash from `contractile.just`:
115+
`must-license-present` (LICENSE present), `must-readme-present` (`README.adoc`
116+
present), `must-no-banned-files` (no Dockerfile/Makefile),
117+
`must-spdx-headers` (0 unheadered source files scanned).
118+
* *`TRUST` — licence + secrets PASS.* `trust-license-content` (LICENSE carries
119+
an SPDX/MPL identifier) and `trust-no-secrets-committed` (no `.env` /
120+
`credentials.json` / `.env.local`).
121+
* *Real language artefacts exist.* `spec/grammar.ebnf` (114 lines) +
122+
`spec/grammar-overview.md`; `src/` holds `core / definitions / errors /
123+
bridges / contracts / aspects / interface`. This is genuine KRL design, not
124+
template filler — KRL is the Construct/Transform/Resolve/Retrieve resolution
125+
DSL of the stack.
126+
127+
== Known-incomplete but honestly fenced (loud failures, never silent)
128+
129+
* *`verify-template` — FAIL.* The `Justfile` still references
130+
`rsr-template-repo`; ~8 files still contain `{{PLACEHOLDER}}` tokens; the
131+
Groove manifest still has `(port 0)`; and `EXPLAINME.adoc` still has the
132+
`{project-name}` token. krl is a partly-uninstantiated RSR template — visible
133+
debt.
134+
* *`trust-container-images-pinned` — FAIL.* `Containerfile` base images are not
135+
digest-pinned (`@sha256:`). Supply-chain hygiene gap.
136+
* *`validate-rsr` — FAIL.* Required paths missing at this commit:
137+
`.machine_readable/anchors/ANCHOR.a2ml` and `src/interface/abi`.
138+
139+
== Outstanding / weak / refuted (no spin)
140+
141+
* *No discharged proofs.* `PROOF-STATUS.md` (updated 2026-06-01) reports *0 done*
142+
across all categories: Typing 0/2, Invariant 0/3 (1 partial), Algorithm 0/1
143+
(1 partial), ABI 0/1 (decision pending). krl makes *no* proof-soundness claim.
144+
* *Build/test/lint are stubs.* The `Justfile` `build` / `test` / `lint` / `e2e`
145+
recipes are `# TODO`-marked `echo` placeholders — they do not exercise krl.
146+
* *Not run this session (absent toolchain):* `validate-state`, the full OpenSSF
147+
`verify`, and anything needing `just` / `deno` / a prover. Stated, not faked.
148+
* *Two `.machine_readable` layouts coexist* (root `*.a2ml` *and* `6a2/`) — worth
149+
reconciling, not a correctness fault.
150+
151+
== Reproduce it yourself [[reproduce]]
152+
153+
From the repo root, at the commit above (no `just` needed — run the recipe
154+
bodies as bash):
155+
156+
[source,bash]
157+
----
158+
git rev-parse HEAD # expect d8b9768d294d4339bc4fca3d2e7b787e3ad610bd
159+
git status --porcelain # expect empty before adding this file
160+
161+
# MUST (expect PASS):
162+
test -f LICENSE; test -f README.adoc; test ! -f Dockerfile -a ! -f Makefile
163+
164+
# TRUST (licence+secrets PASS; container pinning FAIL):
165+
grep -q 'SPDX\|MPL' LICENSE
166+
grep -q '@sha256:' Containerfile # expect NO match -> FAIL
167+
168+
# verify-template (expect FAIL):
169+
grep -q 'rsr-template-repo' Justfile # expect match -> FAIL
170+
grep -rl '{{'{{'}}[A-Z_]*{{'}}'}}' --include='*.adoc' --include='*.a2ml' . | grep -v PLACEHOLDERS
171+
172+
# validate-rsr (expect FAIL): these should be MISSING
173+
ls .machine_readable/anchors/ANCHOR.a2ml src/interface/abi
174+
----
175+
176+
== One-line characterisation (quote this)
177+
178+
"KRL is the Knot Resolution Language surface of the KRL stack — a genuine
179+
grammar-and-`src` design (`spec/grammar.ebnf`, `src/{core,definitions,errors,
180+
bridges}`) inside a half-instantiated RSR template: the `MUST` and
181+
licence/secrets `TRUST` gates pass, but `verify-template` and `validate-rsr`
182+
fail loudly (Justfile still `rsr-template-repo`, ~8 placeholder files, EXPLAINME
183+
`{project-name}`, missing `ANCHOR.a2ml` + `src/interface/abi`, Containerfile
184+
unpinned), and `PROOF-STATUS` reports 0/7 obligations discharged. A
185+
language-in-design on template scaffolding, not a finished artefact — and the
186+
gates were run as raw bash because `just` is absent in this session. No
187+
intentional overclaim."
188+
189+
== Key concern + cross-repo wiring
190+
191+
krl's *key concern* is the *resolution DSL surface* (Construct / Transform /
192+
Resolve / Retrieve), lowering to TangleIR. Per the 2026-06-19 estate rule, each
193+
repo carries its own AFFIRMATION + scoped Must/Intend/Wish table, cross-
194+
referencing the others and kept in sync as crossover resolves. krl's scoped
195+
table lives at `docs/identity-fabric/musts-intends-wishes.adoc`. Sibling
196+
concerns: *tangle* (TangleIR + type-safety semantics), *quandledb* (equivalence
197+
/ identity face), *Skein.jl* (computational engine), *echo-types* (structured-
198+
loss theory). Resolve crossover items, then wire the update into those repos.
199+
200+
== Joint attestation
201+
202+
To the best of our joint belief at the timestamp above, every claim in this file
203+
is true and was checked as described — with no intentional overclaim, and with
204+
the open gaps stated rather than hidden.
205+
206+
* *Engineering party (AI):* ran the gate bodies recorded here as bash on
207+
2026-06-19 and stands behind this wording as a faithful report of those runs,
208+
including the explicit `just`-absent caveat.
209+
* *Owner / maintainer:* Jonathan D.A. Jewell — signs by committing this file
210+
with `-S`; the signed git commit over this content, at the SHA above, is the
211+
authoritative form of this affirmation.
212+
* *Signed-off-date:* (fill on signing)
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// SPDX-License-Identifier: MPL-2.0
2+
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
3+
= krl — Normative Scope (Must / Intend / Wish)
4+
:toc: preamble
5+
:revdate: 2026-06-19
6+
7+
[abstract]
8+
Per-repo normative-scope record for krl (the Knot Resolution Language surface),
9+
plus a clearly-marked *crossover* block for the QuandleDB side of the shared
10+
KRL-stack table. Estate rule (2026-06-19): every repo carries its own scoped
11+
table; crossover content is duplicated and marked until resolved, then wired
12+
into the other relevant repos. `◇` marks proposals not yet canonical.
13+
14+
== Levels
15+
16+
* *MUST* — required to be what it is (RFC 2119 normative).
17+
* *INTEND* — committed direction.
18+
* *WISH* — aspirational.
19+
20+
== krl (own)
21+
22+
[cols="1,5", options="header"]
23+
|===
24+
| Level | krl
25+
26+
| *MUST*
27+
| Be the resolution DSL — *Construct / Transform / Resolve / Retrieve*; lower to
28+
TangleIR; rest on Tangle type-safety (extend, never redefine); run against the
29+
QuandleDB+Skein substrate (no 1:1 op↔component); *not merely a query
30+
language*; estate governance — the `MUST` contractile gate (LICENSE, README,
31+
SPDX headers, no banned files) stays green; SPDX headers on all files.
32+
33+
| *INTEND*
34+
| *Finish the RSR-template instantiation* (the live debt per `AFFIRMATION.adoc`):
35+
rename the `Justfile` off `rsr-template-repo`, replace the `{project-name}`
36+
token in EXPLAINME and the ~8 remaining `{{PLACEHOLDER}}` files, add
37+
`.machine_readable/anchors/ANCHOR.a2ml` + `src/interface/abi`, assign the
38+
Groove port, digest-pin the Containerfile. Discharge the `PROOF-NEEDS`
39+
obligations (Typing / Invariant / Algorithm / ABI — currently 0/7). Retrieve
40+
recovers resolution-relevant artefacts, *not* arbitrary query; keep
41+
polynomial/colouring computation in the engine, invoked not language-level ◇.
42+
43+
| *WISH*
44+
| A language *family*: KRL (resolution) + a quandle-algebra language
45+
(object-level set/relations) + a narrative-projection language (Lithoglyph) ◇;
46+
KRL dialects; generic query surface if/when the query language is un-deferred
47+
(ADR 0002); Verisim federation participation.
48+
|===
49+
50+
== Crossover — QuandleDB / stack (DUPLICATED; resolve, then wire)
51+
52+
[NOTE]
53+
====
54+
*Crossover content — duplicated and marked per the 2026-06-19 estate rule.* The
55+
QuandleDB column below is *native to quandledb*; it is reproduced here because
56+
krl and QuandleDB share the equivalence-integrity spine. *Once the open items
57+
resolve* — VerisimCore placement; the language-family split; the query-language
58+
decision — update the canonical copy in quandledb and re-sync this duplicate.
59+
====
60+
61+
[cols="1,3,3", options="header"]
62+
|===
63+
| Level | QuandleDB (crossover) | ⊕ Both — shared requirement
64+
65+
| *MUST*
66+
| Durable store: presentations, invariants, fingerprints, equivalence classes,
67+
witnesses; extract quandle from TangleIR; read-only server (writes via Skein)
68+
| Rest on TangleIR / Tangle type-safety; *equivalence-integrity = the `a = a`
69+
idem core*; honest KRL-stack grounding (no op↔component category error)
70+
71+
| *INTEND*
72+
| Canonical persistence + equivalence face; host the server-side KRL parser
73+
(`server/krl/`)
74+
| Serve resolution-relevant artefacts + witnesses + provenance (KRL names them →
75+
QuandleDB supplies); feed Verisim's identity / consonance layer
76+
77+
| *WISH*
78+
| "maths analogue of a graph database" ◇; re-ground the withdrawn schema v5
79+
| Verisim federation node — map↔territory anchoring; generic query access
80+
(deferred — ADR 0002)
81+
|===
82+
83+
== Spine + cross-repo wiring
84+
85+
The ⊕ MUST cell is load-bearing: *equivalence-integrity*. The `a = a` problem is
86+
the single thing krl and QuandleDB are unconditionally bound to, from opposite
87+
ends — QuandleDB *computes and stores* it; krl *resolves with* it.
88+
89+
Sibling repos' key concerns (keep in sync as crossover resolves): *tangle* —
90+
TangleIR + type-safety semantics; *quandledb* — equivalence / identity face;
91+
*Skein.jl* — computational engine; *echo-types* — structured-loss theory + the
92+
identity-fabric framing (Conway·Fichte / Bruner / Ricoeur). See `../../AFFIRMATION.adoc`.

0 commit comments

Comments
 (0)