Skip to content

docs: re-measure cartridge counts and .so build status (2026-04-30)#42

Merged
hyperpolymath merged 1 commit intomainfrom
remeasurement-2026-04-30
Apr 30, 2026
Merged

docs: re-measure cartridge counts and .so build status (2026-04-30)#42
hyperpolymath merged 1 commit intomainfrom
remeasurement-2026-04-30

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Re-measures the date-stamped historical statements PR #40 deliberately left out of scope (because they were measurements taken on 2026-04-25 and substituting blind would have been wrong). Now refreshed against the actual repo state on 2026-04-30 after just build produced 111 of 115 cartridge .so libraries.

Numbers refreshed

Surface Old New
TOPOLOGY.md L4 "Updated 2026-04-25. 112 cartridges across 6 tiers." "Updated 2026-04-30. 115 cartridges across 6 tiers (111 with .so built, 4 pending)."
TEST-NEEDS.md L124 "112 cartridges loaded … as of 2026-04-25" "115 cartridges loaded … as of 2026-04-30" + the 4 not-yet-building names
ROADMAP.adoc v1.0.1 (4 checkboxes) mixed 112/checked + unchecked bumped to 115, re-dated 2026-04-30, two unchecked items now [x] (this PR closes them)
ROADMAP.adoc v1.1.0 "99 of 106 cartridges use mod.js" "4 of 115 cartridges still use mod.js" — the gap closed substantially
docs/ARCHITECTURE.md L138 "Once all 112 cartridges have verified .so builds" 115 + parenthetical 2026-04-30 measurement
docs/ARCHITECTURE.md L209–212 "1 complete (boj-health), 111 in progress" — INVERTED "111 with .so built, 4 not yet building" — actually inverts the breakdown
docs/READINESS.md L75 "Cartridge fleet (106) … 103/106 shared libs built" "Cartridge fleet (115) … 111/115 shared libs built"

The 4 cartridges still without .so: database-mcp, echidna-llm-mcp, lang-mcp, orchestrator-lsp-mcp. Flagged in three places so the next investigator has a starting list.

What this PR deliberately does NOT do

  • Re-run mix test / zig test / FFI test counts. The numbers in READINESS.md (113 FFI tests, 178 core tests, 4 believe_me, etc.) are last-documented values, not re-measured. The row text in READINESS.md honestly notes this. Test re-run is a separate follow-up.
  • Re-count per-directory READMEs. The "393 per-directory READMEs" number is also a last-documented value. Same reasoning.
  • Investigate the 4 build-failing cartridges. Their just build errors are out of scope here; flagged for a follow-up.
  • Touch any other ARCHITECTURE / ROADMAP claims unrelated to count or build status.

Test plan

🤖 Generated with Claude Code

Sweeps the date-stamped historical statements that PR #40 deliberately
left out of scope (because they were measurements taken on 2026-04-25
and substituting blind would have been wrong). Now re-measured against
the actual repo state on 2026-04-30 after `just build` produced 111
shared libraries from 115 cartridge directories.

Files updated:

  TOPOLOGY.md L4
    "Updated 2026-04-25. 112 cartridges across 6 tiers."
    -> "Updated 2026-04-30. 115 cartridges across 6 tiers (111 with
       `.so` built, 4 pending)."

  TEST-NEEDS.md L124
    "112 cartridges loaded ... as of 2026-04-25"
    -> "115 cartridges loaded ... as of 2026-04-30 (111 with `.so`
       built; the 4 without are database-mcp, echidna-llm-mcp,
       lang-mcp, orchestrator-lsp-mcp)"

  ROADMAP.adoc v1.0.1
    - cartridge.json + mod.js coverage checkboxes: bumped 112 -> 115
      and re-dated 2026-04-30
    - "Re-run cartridge matrix build/tests": now [x] (build re-run done;
      test re-run still deferred and called out)
    - "Refresh repo documentation claims": now [x] (PR #40 + this PR
      cover the canonical surfaces)

  ROADMAP.adoc v1.1.0 ("JS cartridge dispatch")
    "99 of 106 cartridges use mod.js, not Zig .so"
    -> "4 of 115 cartridges still use mod.js" — gap closed substantially
       since the original measurement.

  docs/ARCHITECTURE.md L138
    "Once all 112 cartridges have verified .so builds"
    -> 115 + parenthetical re-measurement footnote.

  docs/ARCHITECTURE.md L209-212 (cartridge production status)
    "1 complete (boj-health), 111 in progress" -> the breakdown is now
    inverted: 111 with .so built, 4 not yet building. Updated text
    reflects this.

  docs/READINESS.md L75 (Cartridge fleet row)
    Bumped (106) -> (115). Built-libs ratio refreshed (103/106 ->
    111/115). Re-assessed date 2026-05-28 -> 2026-04-30. Honestly noted
    that README counts, FFI test counts, and per-directory annotation
    were NOT re-verified in this sweep (those numbers are still the
    last-documented values; flagged for a separate readiness sweep).

What this PR deliberately does NOT do:

  * Re-run mix test / zig test / FFI test counts. The numbers in
    READINESS.md (113 FFI tests, 178 core tests, 4 believe_me, etc.)
    haven't been re-measured. They're left as last-documented values
    with a flag in the row text. Re-running tests is a separate
    follow-up — see ROADMAP "test re-run still deferred".

  * Re-count per-directory READMEs (the 393 number). That's a static
    annotation count; would need a small audit script.

  * Touch the 4 not-yet-building cartridges (database-mcp,
    echidna-llm-mcp, lang-mcp, orchestrator-lsp-mcp). Their build
    failures are out of scope; flagged here so the next investigator
    has a starting list.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit 1750813 into main Apr 30, 2026
9 of 13 checks passed
@hyperpolymath hyperpolymath deleted the remeasurement-2026-04-30 branch April 30, 2026 15:51
hyperpolymath added a commit that referenced this pull request Apr 30, 2026
… mix path in service unit (#43)

## Summary

Three of the four sub-parts of the deferred cleanup ledger from PR #40's
out-of-scope list. The fourth (port the 6 `.ts` cartridge adapters to
AffineScript→typed-wasm) is delegated to a scheduled remote agent that
fires 2026-05-07 and runs **one cartridge per pass**, so it stays
opportunistic and reviewable.

## Changes

| File | Fix |
|---|---|
| `.github/workflows/hypatia-scan.yml` | Adds job-level `GITHUB_TOKEN`
env (Hypatia CLI calls `gh api` for Dependabot lookups; without the
token it logs `Dependabot alerts unavailable: GITHUB_TOKEN not set` and
the job exits non-zero). Adds `security-events: read` permission. |
| `.github/workflows/rsr-antipattern.yml` | "use ReScript instead" →
"use AffineScript→typed-wasm instead". Header comment + Allows banner
updated to reflect estate-wide language policy 2026-04-30 (RS/TS/JS
default is AffineScript; ReScript transitional / adapter-shim only). |
| `.github/workflows/ts-blocker.yml` | "port to Zig or ReScript" / "use
Zig or ReScript instead" → "Zig (systems) or AffineScript→typed-wasm
(application)". Underlying detection unchanged. |
| `elixir/boj-rest.service` | Replace hardcoded `ExecStart=/usr/bin/mix`
(which is apt's 1.14, fails `mix.exs` `~> 1.15` check on Ubuntu 24.04
LTS) with `ExecStart=mix run --no-halt`. Adds `Environment=PATH` with
asdf shims, cargo bin, `~/.local/bin`. Adds `ASDF_DIR` + `ASDF_DATA_DIR`
so asdf shims work under systemd's clean env. Bumps cartridge-count
comment 112 → 115. |

## Why these specifically

PR #40 (spec drift) merged on 2026-04-30 surfaced four follow-up
cleanups; this PR closes three of them. The fourth (`.ts` → AffineScript
ports) was deliberately scheduled rather than rushed — verifying
AffineScript readiness for each cartridge is genuinely per-cartridge
work and the scheduled agent does it one at a time.

The `boj-rest.service` fix in particular was discovered the hard way
during the maintainer's install: the deployed unit needed a hand-patch
(`~/.config/systemd/user/boj-rest.service`) to point at
`~/.asdf/installs/elixir/1.18.4-otp-25/bin/mix`. Persisting the fix to
the source template (with `%h` systemd-substitution + asdf shim PATH)
means the next person installing on a fresh Ubuntu doesn't repeat the
dance.

The three pre-existing CI failures that were blocking PRs #40, #41, #42
are likely partially closed by this PR:

- **Hypatia** — should now pass with `GITHUB_TOKEN` wired up.
- **TS/JS Blocker** and **antipattern-check** — will *still* fail on the
6 `.ts` cartridge adapters (`academic-workflow-mcp`, `bofig-mcp`,
`ephapax-mcp`, `fireflag-mcp`, `hesiod-mcp`, `sanctify-mcp`). Those are
the scheduled agent's work. Admin-merge-without-CI is still expected for
this PR.

## Test plan

- [ ] CI shows Hypatia passing on this branch (GITHUB_TOKEN now
available).
- [ ] Diff visual review for the policy text — make sure no instance of
"use ReScript instead" remains in the workflow files.
- [ ] After merge, fresh install on a clean Ubuntu 24.04 LTS host with
asdf + the toolchain-pins from PR #41: `bash setup.sh && just doctor &&
just deps && just build && just install-service` — confirm
`boj-rest.service` starts cleanly without the `(Mix) You're trying to
run :boj_rest on Elixir v1.14.0` error that was previously hit.

## Out of scope

- The 6 `.ts` → AffineScript ports (scheduled, one per week from
2026-05-07, routine `trig_01X9BreihRW4AU5BdELY2QBY`).
- Re-running mix test / FFI tests for grade re-validation (READINESS.md
still lists the last-documented numbers per the re-measurement PR #42).
- The 4 cartridges still without `.so` (`database-mcp`,
`echidna-llm-mcp`, `lang-mcp`, `orchestrator-lsp-mcp`) — listed in #42
for follow-up.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant