|
| 1 | +// SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | +// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> |
| 3 | += BoJ Server Dogfood Log |
| 4 | +Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
| 5 | +:toc: left |
| 6 | +:toclevels: 2 |
| 7 | +:sectlinks: |
| 8 | + |
| 9 | +== Purpose |
| 10 | + |
| 11 | +This file is the **dated evidence surface** for BoJ Server dogfooding. It exists |
| 12 | +so that claims about "this has been used on real work" are backed by a log |
| 13 | +entry a reviewer can read, rather than by self-report in release notes or |
| 14 | +`STATE.a2ml`. |
| 15 | + |
| 16 | +It is the authoritative source for the "active dogfooding with no known |
| 17 | +home-context failures" evidence that CRG v2.0 requires for D → C promotion |
| 18 | +(see `docs/READINESS.md` §4). |
| 19 | + |
| 20 | +== Scope |
| 21 | + |
| 22 | +An entry belongs in this log if, and only if: |
| 23 | + |
| 24 | +. A BoJ Server component (cartridge, bridge, federation, panel, CLI, or the |
| 25 | + server itself) was **exercised on real work** — not merely a test run. |
| 26 | +. The exercise was performed in the **home context** (hyperpolymath estate). |
| 27 | +. A **dated, factual** note is recorded: date, component, what was done, what |
| 28 | + succeeded, what broke, and what was done about any breakage. |
| 29 | + |
| 30 | +**Exclusions.** Aspirational notes ("we intend to use X this week") do not |
| 31 | +belong here. Test-suite runs do not belong here either — they are reported |
| 32 | +under `STATE.a2ml` §quality. This log is about using the thing, not testing |
| 33 | +it. |
| 34 | + |
| 35 | +== Entry Format |
| 36 | + |
| 37 | +Each entry is a third-level section dated in ISO-8601: |
| 38 | + |
| 39 | +[source,asciidoc] |
| 40 | +---- |
| 41 | +=== 2026-MM-DD — <short title> |
| 42 | +
|
| 43 | +Component:: <component(s) exercised> |
| 44 | +Context:: <what the work was> |
| 45 | +Outcome:: <what succeeded, in specific terms> |
| 46 | +Failures:: <what broke, with verbatim errors where possible; "none observed" if so> |
| 47 | +Remediation:: <what was done about each failure; "n/a" if no failures> |
| 48 | +Witness:: <who ran it — name, or "CI" / "agent" / "cron"> |
| 49 | +---- |
| 50 | + |
| 51 | +Entries are append-only. If a subsequent entry supersedes a prior claim (e.g. |
| 52 | +a reported failure turned out to be an invoker error), write a new dated entry |
| 53 | +that explicitly references the previous one; do not rewrite history. |
| 54 | + |
| 55 | +== Log |
| 56 | + |
| 57 | +=== 2026-04-18 — Inaugural entry: documentation audit and CRG v2.0 alignment |
| 58 | + |
| 59 | +Component:: Documentation corpus (`cartridges/*/README.adoc`, |
| 60 | + `docs/READINESS.md`, `docs/practice/DOGFOOD-LOG.adoc`). |
| 61 | + |
| 62 | +Context:: Three-item C-grade-blocker sweep: |
| 63 | + (1) 46 cartridges lacking `README.adoc` were generated from their |
| 64 | + `cartridge.json` metadata, bringing coverage to **100/100** (99 |
| 65 | + standard cartridges + `model-router-mcp` as a non-standard |
| 66 | + exception). Generator logic lives in a one-shot shell script driven |
| 67 | + by `jq`, reading `cartridge.json` fields (`name`, `description`, |
| 68 | + `domain`, `tier`, `protocols`, `auth`, `tools`) and detecting the |
| 69 | + `abi/` / `adapter/` directory layout to pick the correct |
| 70 | + architecture template. `model-router-mcp` was written by hand |
| 71 | + because it has no `cartridge.json` — tool list is inline in |
| 72 | + `src/router.js`. |
| 73 | + (2) `docs/READINESS.md` was rewritten from CRG v1.0 (dated |
| 74 | + 2026-03-09) to CRG v2.0 (dated 2026-04-18). New schema adds |
| 75 | + stability posture per component, promotion blockers, honest D-wide |
| 76 | + rating (no component cleared C under the stricter rubric), and the |
| 77 | + machine-readable grade declaration line required by |
| 78 | + `just crg-grade` / `just crg-badge`. |
| 79 | + (3) This log was inaugurated. |
| 80 | + |
| 81 | +Outcome:: |
| 82 | +* 46 new `README.adoc` files written under `cartridges/*/README.adoc`, |
| 83 | + following the pattern established by `airtable-mcp/README.adoc` and |
| 84 | + `affinescript-mcp/README.adoc`. Each new README states overview, |
| 85 | + authentication (where applicable), tool table with descriptions, |
| 86 | + architecture layer table (ABI/Idris2, FFI/Zig, Adapter/Zig — with V-lang |
| 87 | + predecessors sidelined), build steps, and honest status line. |
| 88 | +* Cartridge fleet count confirmed at 99 standard + 1 non-standard |
| 89 | + (`model-router-mcp`), matching the 2026-04-12 V-sweep checkpoint in |
| 90 | + `MEMORY.md` under `project-status.md`. |
| 91 | +* Adapter audit confirmed all cartridge adapters are now Zig; historical |
| 92 | + V-lang adapter files survive alongside as `SIDELINED-*.v.adoc`. |
| 93 | +* `READINESS.md` now exposes the promotion-path blockers per component |
| 94 | + (previously absent) and the six-target diversity criteria for B |
| 95 | + (previously unspecified). |
| 96 | + |
| 97 | +Failures:: |
| 98 | +* **None observed in the audit work itself.** |
| 99 | +* Honest caveat: this session did **not** exercise any BoJ cartridge or the |
| 100 | + server runtime. The work was performed via the AI assistant's generic file |
| 101 | + tools (Read/Write/Bash) rather than routed through, e.g., `reposystem-mcp`, |
| 102 | + `git-mcp`, or the MCP bridge. That is a finding, not a failure: the server |
| 103 | + is not yet in the author's daily-work critical path for the exact kind of |
| 104 | + bulk documentation sweep it should eventually enable. Future entries should |
| 105 | + record actual BoJ-routed executions, not external edits to the BoJ |
| 106 | + repository. |
| 107 | +* Count reconciliation: `STATE.a2ml §quality` records |
| 108 | + `cartridges-total = 92` and `cartridge-shared-libs = 96`; the |
| 109 | + filesystem shows 100 directories under `cartridges/`. The true live count |
| 110 | + is 99 standard + 1 non-standard. `STATE.a2ml` is stale on this field and |
| 111 | + should be updated in a follow-up session. |
| 112 | + |
| 113 | +Remediation:: |
| 114 | +* Stale `STATE.a2ml` cartridge counters: flagged for a separate commit. |
| 115 | +* Deep per-cartridge annotation (inside `abi/`, `ffi/`, `adapter/` per |
| 116 | + cartridge) is still outstanding and remains the concrete D → C gate on the |
| 117 | + cartridge fleet. |
| 118 | + |
| 119 | +Witness:: Jonathan D.A. Jewell (via AI-assisted session, Claude Opus 4.7). |
| 120 | + |
| 121 | +== Maintenance |
| 122 | + |
| 123 | +Each calendar month, the current maintainer SHOULD: |
| 124 | + |
| 125 | +. Scan this log for entries whose `Failures` field names an unresolved |
| 126 | + breakage, and confirm that either the remediation landed or the breakage |
| 127 | + still stands (and an issue exists for it). |
| 128 | +. Re-check `docs/READINESS.md` grades against the last 4 weeks of this log. |
| 129 | + A component claimed at C-or-above with no dogfood entry in the window is |
| 130 | + a candidate for demotion (CRG v2.0 §7.2). |
| 131 | +. If the log grows past ~500 lines, rotate oldest-year entries into |
| 132 | + `docs/practice/DOGFOOD-LOG-archive/YYYY.adoc` with a single summary line |
| 133 | + remaining here. |
| 134 | + |
| 135 | +This log is the evidence floor. No grade above D is honest without it. |
0 commit comments