Skip to content

Commit ddc83e8

Browse files
docs: refresh human + machine docs to the current merged state (#49)
## What & why A consistency/accuracy pass so every human-facing doc and machine-readable manifest reflects the **current merged state** (the wave-1/wave-2 production-readiness work now on `main`). No rewrites — surgical, truthful edits that preserve each file's structure and voice. All figures were read back from the code, not assumed. ### Ground truth (verified against the repo) | Claim | Value | Source of truth | |-------|-------|-----------------| | Stats domain modules | **41** | `src/stats/*.jl` | | Total source modules | **67** | `src/**/*.jl` | | Executor-dispatched tools | **55** | `tool_name == "…"` arms in `src/tools/executor.jl` | | LLM-facing tool schemas | **29** | `_tool("…")` defs in `src/tools/definitions.jl` | | Static `@test` assertions | **693** | across the 8 runtests.jl-wired files (chi_square_validation is standalone, not wired) | | CI workflows | **19** | `.github/workflows/` | ### Human docs (refresh commit `4e9d7f2`) - **README.adoc** — adds the guarantee-is-enforced-in-code story (`src/tools/guardrail.jl:validate_numeric_provenance()`, retry-once-then-warn, `test/guardrail_test.jl`); links to the existing "Experimental surfaces" section from #48 without duplicating it. - **EXPLAINME.adoc** — MOLLOCK invariant now described as code-enforced; module count `~40 → 41`; tool evidence corrected to `55 dispatched / 29 LLM-facing`; test count `632 → 693` with the real suite list. - **ROADMAP.adoc** — `~40 → 41` modules, `632 → 693` tests, advanced ground-truth validation marked done (`test/reference_validation_advanced_test.jl`, #46). - **TOPOLOGY.md** — completion dashboard corrected (`17 → 41` modules, `25+ → 29` tools, `632 → 693` tests, `14 → 19` workflows); last-updated bumped. ### Machine manifests (refresh commit `4e9d7f2`) - **.machine_readable/6a2/STATE.a2ml** — `source-modules 65→67`, `stats-domain-modules 40→41`, new `llm-tools=29` / `executor-dispatched-tools=55`, `test-count 632→693` (with scoped note), `ci-workflows 14→19`. - **META.a2ml / NEUROSYM.a2ml / PLAYBOOK.a2ml / AGENTIC.a2ml / ECOSYSTEM.a2ml** — dates; `languages` now `["julia","zig","agda"]` with an experimental-surface caveat; NEUROSYM records the post-generation numeric-provenance audit as an enforcement layer; PLAYBOOK points at `docs/RELEASING.adoc`. - **0-AI-MANIFEST.a2ml** — `17 → 41` modules, `25+ → 29` tool defs. - **.well-known/humans.txt** — Agda proofs added to the experimental components line; date bump. ### Status table - **.claude/tasks/prod-readiness/README.md** — W1-1..8 and W2-1..5/8 marked MERGED with their PR numbers (guardrail #37, degenerate #40, router #41, install #34, supply-chain #35, zig #38, agda #42, hygiene #33, release #43, guix #39, containers #44, reframe #48, refval #46, polish #45, plus chi-square #47); **W2-6** and **W2-7** remain OPEN. Every number cross-checked against merged PRs #33#48. ### Finalize commit (`98f7d8b`) — residual stale counts this pass caught - **TEST-NEEDS.md** — `65 → 67` source modules, `30+ → 41` stats modules, `478 (single runtests.jl) → 693 @test across runtests.jl + 7 wired suites`; the "single test file" and "ffi/zig references deleted Foreign.idr" FLAGGED ISSUES marked RESOLVED (suite is split; Foreign.idr refs gone, Zig compiles under `zig build test` per #38/#48). - **.github/workflows/e2e.yml** — header comment `478 → 693 @test assertions`. ## Verification (run, results) - `git grep` for outdated counts (`632`, `478`, `17 modul`, `30+ stats`, `65 source/modul`, `25+ tool`, `14 workflow`) → **CLEAN** outside historical `.claude/tasks/*` work-order briefs and binary assets. - `git grep -in "formally verified\|formally proven\|production-ready"` → only the two legitimate contexts remain: `.machine_readable/integrations/proven.a2ml` (an external formally-verified *library*) and `src/bridge/echidna_adapter.jl` (which explicitly calls the identities proof *targets*, "not statements that are currently formally verified"). No overclaim about the Statistikles statistics; #48's experimental framing preserved. - Machine claims do not exceed human claims (STATE.a2ml mirrors README/EXPLAINME). - Pure-TOML a2ml files (`STATE/META/NEUROSYM/PLAYBOOK/AGENTIC/ECOSYSTEM/CLADE`) parse via `tomllib`; no a2ml file modified in the finalize commit. The "Validate A2ML manifests" job (`dogfood-gate.yml`, `strict:false`) will run on this PR. - Both commits SSH-signed; verified `G` (good signature). ## Intentionally left unchanged - **chi_square_validation_test.jl** is a standalone file not wired into `runtests.jl`; the 693 figure is scoped to the wired suite and does not claim it. Wiring it in is a code change, out of scope for a docs pass — noted for a follow-up. - **.machine_readable/bot_directives/**, **CLADE.a2ml**, **.well-known/security.txt**, quickstarts, `docs/QUICKSTART.md`, `docs/CITATIONS.adoc` — inspected; no stale module/tool/test/version claims to correct (templates / identity / contact files; `security.txt` `Expires` is still in the future). - No Julia run (docs/manifests only; no code paths touched). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 7a06a5c commit ddc83e8

15 files changed

Lines changed: 89 additions & 63 deletions

File tree

.claude/tasks/prod-readiness/README.md

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ model (**Opus / Sonnet / Haiku**) for implementation and for adversarial verific
1414
- **Wave 2** = everything beyond that (release engineering, packaging, honesty
1515
reframes, deeper test coverage, observability, polish).
1616

17-
Package 8 of wave 1 (hygiene/security-templates) is **already merged** (PR #33).
18-
Everything else below is open work.
17+
All of wave 1 and most of wave 2 are now **merged to `main`**. Only two work orders
18+
remain open: **W2-6 (observability)** and **W2-7 (prompt-injection delimiting)**.
1919

2020
## How to run
2121

@@ -32,33 +32,35 @@ Everything else below is open work.
3232

3333
### Wave 1 — basic functioning (do first, in order)
3434

35-
**Status (2026-07-11):** packages 4, 5, and 8 are **MERGED** (PRs #34, #35, #33). The
36-
five below with a status of OPEN are the remainder — their fleet agents died on a spend
37-
limit before pushing. Do them next, **W1-1 (P0) first**.
35+
**Status (2026-07-11):** all eight wave-1 packages are **MERGED** to `main`.
3836

3937
| # | Task | Branch | Impl | Verify | Status |
4038
|---|------|--------|------|--------|--------|
41-
| 1 | [Neural boundary guardrail (**P0**)](w1-1-neural-guardrail.md) | `fix/neural-boundary-guardrail` | **opus** | **opus** | **OPEN** |
42-
| 2 | [Degenerate-input guards + `@assert``ArgumentError`](w1-2-stats-degenerate-inputs.md) | `fix/stats-degenerate-inputs` | sonnet | opus | **OPEN** |
43-
| 3 | [Table-driven router tests + CI coverage](w1-3-executor-router-coverage.md) | `test/executor-router-coverage` | sonnet | sonnet | **OPEN** |
39+
| 1 | [Neural boundary guardrail (**P0**)](w1-1-neural-guardrail.md) | `fix/neural-boundary-guardrail` | **opus** | **opus** | #37 |
40+
| 2 | [Degenerate-input guards + `@assert``ArgumentError`](w1-2-stats-degenerate-inputs.md) | `fix/stats-degenerate-inputs` | sonnet | opus | #40 |
41+
| 3 | [Table-driven router tests + CI coverage](w1-3-executor-router-coverage.md) | `test/executor-router-coverage` | sonnet | sonnet | #41 |
4442
| 4 | [Real install path (Justfile, quickstarts, smoke CI)](w1-4-documented-install-path.md) | `fix/documented-install-path` | sonnet | haiku |#34 |
4543
| 5 | [Pin compute half + prune Dependabot + threat model](w1-5-supply-chain-pinning.md) | `fix/supply-chain-pinning` | sonnet | sonnet |#35 |
46-
| 6 | [Make Zig FFI compile + `zig build test` CI](w1-6-zig-ffi-compiles.md) | `fix/zig-ffi-compiles` | **opus** | sonnet | **OPEN** |
47-
| 7 | [Type-checking Agda proofs + `agda --safe` CI](w1-7-agda-proofs-ci.md) | `fix/agda-proofs-ci` | **opus** | sonnet | **OPEN** |
44+
| 6 | [Make Zig FFI compile + `zig build test` CI](w1-6-zig-ffi-compiles.md) | `fix/zig-ffi-compiles` | **opus** | sonnet | #38 |
45+
| 7 | [Type-checking Agda proofs + `agda --safe` CI](w1-7-agda-proofs-ci.md) | `fix/agda-proofs-ci` | **opus** | sonnet | #42 |
4846
| 8 | Hygiene / security-templates | `chore/hygiene-security-templates` | haiku | haiku |#33 |
4947

5048
### Wave 2 — beyond basic functioning
5149

52-
| # | Task | Branch | Impl | Verify |
53-
|---|------|--------|------|--------|
54-
| 1 | [Release: JuliaRegistrator + TagBot + SBOM](w2-1-release-pipeline.md) | `feat/release-registrator-tagbot` | **opus** | **opus** |
55-
| 2 | [Buildable guix.scm](w2-2-guix-package.md) | `feat/guix-real-package` | **opus** | sonnet |
56-
| 3 | [Runnable Containerfile + devcontainer](w2-3-containers.md) | `feat/containers-runnable` | sonnet | sonnet |
57-
| 4 | [Experimental reframe: FFI + proofs docs](w2-4-experimental-reframe.md) | `docs/experimental-reframe` | sonnet | sonnet |
58-
| 5 | [Extend ground-truth reference validation](w2-5-reference-validation.md) | `test/reference-validation-extension` | sonnet | **opus** |
59-
| 6 | [Structured logging + audit trail](w2-6-observability.md) | `feat/structured-observability` | sonnet | sonnet |
60-
| 7 | [Prompt-injection delimiting](w2-7-prompt-injection.md) | `fix/prompt-injection-delimiting` | sonnet | haiku |
61-
| 8 | [Polish sweep](w2-8-polish-sweep.md) | `chore/polish-sweep` | haiku | haiku |
50+
**Status (2026-07-11):** six of eight merged; **W2-6** and **W2-7** remain **OPEN**. A
51+
dedicated chi-square correctness review (Yates-clamp fix + ground-truth tests) also
52+
landed as **#47**, outside the original wave plan.
53+
54+
| # | Task | Branch | Impl | Verify | Status |
55+
|---|------|--------|------|--------|--------|
56+
| 1 | [Release: JuliaRegistrator + TagBot + SBOM](w2-1-release-pipeline.md) | `feat/release-registrator-tagbot` | **opus** | **opus** |#43 |
57+
| 2 | [Buildable guix.scm](w2-2-guix-package.md) | `feat/guix-real-package` | **opus** | sonnet |#39 |
58+
| 3 | [Runnable Containerfile + devcontainer](w2-3-containers.md) | `feat/containers-runnable` | sonnet | sonnet |#44 |
59+
| 4 | [Experimental reframe: FFI + proofs docs](w2-4-experimental-reframe.md) | `docs/experimental-reframe` | sonnet | sonnet |#48 |
60+
| 5 | [Extend ground-truth reference validation](w2-5-reference-validation.md) | `test/reference-validation-extension` | sonnet | **opus** |#46 |
61+
| 6 | [Structured logging + audit trail](w2-6-observability.md) | `feat/structured-observability` | sonnet | sonnet | **OPEN** |
62+
| 7 | [Prompt-injection delimiting](w2-7-prompt-injection.md) | `fix/prompt-injection-delimiting` | sonnet | haiku | **OPEN** |
63+
| 8 | [Polish sweep](w2-8-polish-sweep.md) | `chore/polish-sweep` | haiku | haiku |#45 |
6264

6365
**Routing rationale.** Opus for design-sensitive, safety-critical, or niche-toolchain
6466
work (the guarantee guardrail, release engineering, Guix, Zig/Agda, statistical

.github/workflows/e2e.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
# Statistikles — E2E + Aspect Tests
55
#
6-
# Runs the Julia test suite (478 tests, 10 Agda proofs, 8 integrations).
6+
# Runs the Julia test suite (693 @test assertions, 10 Agda proofs, 8 integrations).
77

88
name: E2E + Aspect
99

.machine_readable/6a2/AGENTIC.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
[metadata]
88
version = "0.1.0"
9-
last-updated = "2026-02-20"
9+
last-updated = "2026-07-11"
1010

1111
[agent-permissions]
1212
can-edit-source = true

.machine_readable/6a2/ECOSYSTEM.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
[metadata]
77
version = "0.1.0"
8-
last-updated = "2026-02-20"
8+
last-updated = "2026-07-11"
99

1010
[project]
1111
name = "Statistikles"

.machine_readable/6a2/META.a2ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66

77
[metadata]
88
version = "0.1.0"
9-
last-updated = "2026-02-20"
9+
last-updated = "2026-07-11"
1010

1111
[project-info]
1212
type = "library" # library | binary | monorepo | service | website
13-
languages = ["julia"] # e.g. ["rust", "zig", "idris2"]
13+
# julia is the sole computation language; zig (FFI) and agda (proofs) are
14+
# experimental surfaces that compile/type-check in CI but do not back the core.
15+
languages = ["julia", "zig", "agda"]
1416
license = "MPL-2.0"
1517
author = "Jonathan D.A. Jewell (hyperpolymath)"
1618

.machine_readable/6a2/NEUROSYM.a2ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
[metadata]
1010
version = "0.1.0"
11-
last-updated = "2026-02-20"
11+
last-updated = "2026-07-11"
1212

1313
[architecture]
1414
kautz-type = 1
@@ -25,6 +25,7 @@ enforcement = [
2525
"Tool dispatch architecture — LLM can only call predefined Julia functions",
2626
"System prompt instructs LLM to NEVER compute or estimate",
2727
"All tool results carry provenance stamps from Julia functions",
28+
"Post-generation numeric-provenance audit — src/tools/guardrail.jl:validate_numeric_provenance() traces every numeric literal in the LLM prose to a recorded tool result; orphans are flagged (retry-once-then-warn), never silently rewritten (tested in test/guardrail_test.jl)",
2829
"Adversarial SLM (planned) independently verifies outputs",
2930
]
3031

.machine_readable/6a2/PLAYBOOK.a2ml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
[metadata]
88
version = "0.1.0"
9-
last-updated = "2026-02-20"
9+
last-updated = "2026-07-11"
1010

1111
[deployment]
1212
# method = "gitops" # gitops | manual | ci-triggered
@@ -19,6 +19,9 @@ last-updated = "2026-02-20"
1919
# 4. Run `just security` to audit for vulnerabilities
2020

2121
[release-process]
22+
# Canonical procedure: docs/RELEASING.adoc (JuliaRegistrator + TagBot on the
23+
# General registry; SPDX SBOM). Automated by .github/workflows/release.yml and
24+
# TagBot.yml. The manual outline below stays in sync with that document.
2225
# 1. Update version in STATE.a2ml, META.a2ml, Justfile
2326
# 2. Run `just quality` (format, lint, test)
2427
# 3. Run `just validate` (RSR compliance)

.machine_readable/6a2/STATE.a2ml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[metadata]
66
project = "Statistikles"
77
version = "0.1.0"
8-
last-updated = "2026-03-29"
8+
last-updated = "2026-07-11"
99
status = "active"
1010

1111
[project-context]
@@ -18,12 +18,14 @@ phase = "cross-verification"
1818
maturity = "alpha"
1919

2020
[stats]
21-
source-modules = 65
22-
stats-domain-modules = 40
23-
test-count = 632
24-
test-count-note = "@test assertions across runtests.jl, e2e_test.jl, property_test.jl, reference_validation_test.jl"
21+
source-modules = 67
22+
stats-domain-modules = 41
23+
llm-tools = 29
24+
executor-dispatched-tools = 55
25+
test-count = 693
26+
test-count-note = "static @test assertions across the runtests.jl-wired suite: runtests.jl, e2e_test.jl, property_test.jl, reference_validation_test.jl, reference_validation_advanced_test.jl, degenerate_input_test.jl, guardrail_test.jl, executor_router_test.jl"
2527
test-failures = 0
26-
ci-workflows = 14
28+
ci-workflows = 19
2729

2830
[experimental-surfaces]
2931
# Machine-readable mirror of README.adoc's "Experimental surfaces" section.

.well-known/humans.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ Contact: j.d.a.jewell@open.ac.uk
77
From: United Kingdom
88

99
/* SITE */
10-
Last update: 2026-02-20
10+
Last update: 2026-07-11
1111
Standards: RSR (Rhodium Standard Repository)
1212
License: MPL-2.0 (Palimpsest MPL)
13-
Components: Zig FFI (experimental — placeholder ops); Idris2 ABI (design-only, not present)
13+
Components: Zig FFI (experimental — placeholder ops); Idris2 ABI (design-only, not present); Agda proofs (experimental — ℕ-level lemmas, agda --safe CI)
1414
Tools: just, Podman, Guix

0-AI-MANIFEST.a2ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ These 6 a2ml files MUST exist in `.machine_readable/` directory ONLY:
4040
```
4141
src/
4242
├── Statistikles.jl # Main module (entry point)
43-
├── stats/ # Statistical functions (17 modules)
43+
├── stats/ # Statistical functions (41 modules — representative subset shown)
4444
│ ├── descriptive.jl # Mean, median, SD, quartiles, etc.
4545
│ ├── inferential.jl # t-tests, ANOVA, chi-square
4646
│ ├── correlation_regression.jl # Pearson, Spearman, OLS, multiple regression
@@ -68,7 +68,7 @@ src/
6868
│ ├── graphs.jl # ASCII histogram, boxplot, scatter, bar
6969
│ └── export.jl # CSV, JSON, text reports
7070
└── tools/ # LM Studio integration
71-
├── definitions.jl # 25+ tool definitions (OpenAI format)
71+
├── definitions.jl # 29 LLM tool definitions (OpenAI format)
7272
├── executor.jl # Tool dispatch (neural→symbolic boundary)
7373
├── lmstudio.jl # HTTP client for LM Studio API
7474
└── chat.jl # REPL interface with MOLLOCK warnings

0 commit comments

Comments
 (0)