Skip to content

Commit 2309d2e

Browse files
committed
docs: state the ABI=Idris2 / FFI=Zig baseline explicitly
Verified against the estate's actual convention (gossamer-mcp / k9iser-mcp cartridge templates in boj-server-cartridges, and the Hexadeca-Connector pattern in hypatia/proven-servers) rather than assumed. This repo's own src/abi/FeedbackOTron/Contract.idr and ffi/zig/src/main.zig already comply; this documents why, and notes the 'unified adapter' Zig protocol-bridge layer is a boj-cartridge concept this repo doesn't carry directly (it's the wrapped engine, not the cartridge). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017LDhR8gtnittEWSafunnrq
1 parent 73ba800 commit 2309d2e

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

.claude/CLAUDE.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,28 @@ The following files in `.machine_readable/` contain structured project metadata:
5353
| React Native | Tauri/Dioxus |
5454
| Flutter/Dart | Tauri/Dioxus |
5555

56+
### ABI / FFI Baseline (Estate-wide, verified 2026-07-17)
57+
58+
- **Any ABI must be Idris2** — dependent-type proofs, `%default total`, zero
59+
`believe_me`/`postulate`/`assert_total` in the trusted core. This repo's own
60+
`src/abi/FeedbackOTron/Contract.idr` follows this (real, CI-checked by
61+
`proofs.yml`).
62+
- **Any FFI must be Zig.** This repo's `ffi/zig/src/main.zig` is currently a
63+
labeled stub — no other language is substituted for it.
64+
- **The "unified adapter" protocol-bridge layer** (Zig, single loopback
65+
listener, exposure-gated dispatch into one C ABI — see `boj-server` and
66+
`boj-server-cartridges` CLAUDE.md for the full contract) is a **boj
67+
cartridge** concept. This repo is the wrapped *engine*, not a cartridge
68+
itself (the cartridge is `bug-filing-mcp` in `boj-server-cartridges`), so it
69+
does not carry an `adapter/` directory of its own. Its front doors (MCP
70+
stdio/TCP, HTTP intake) are Elixir/OTP by architecture decision, unrelated
71+
to the Zig adapter pattern.
72+
- Naming lineage: the fuller "Hexadeca-Connector" (16-protocol-surface) pattern
73+
lives in `hyperpolymath/hypatia` and `hyperpolymath/proven-servers`, descended
74+
from a **retired** V-lang reference (`developer-ecosystem/v-ecosystem/v_api_interfaces`),
75+
replaced by Zig+Idris2+Rust-client per the estate-wide V-lang ban
76+
(2026-04-10). Never resurrect a V-lang adapter/ABI/FFI.
77+
5678
### Mobile Development
5779

5880
**No exceptions for Kotlin/Swift** - use Rust-first approach:

0 commit comments

Comments
 (0)