docs: exemplar audit + entry-point hardening - #518
Merged
Merged
Conversation
Three engineering reasons: the BSD audio drivers are unproven in this tree (no CI, no users — an exemplar is an endorsement); FreeBSD's driver demonstrates syscall blocking, which cannot be transplanted to the callback-fed APIs (CoreAudio) where the actual unkillable-condvar trap lives; and the skill's own incumbent rule points at audio-sdl3.c, which contradicted the citation. osenter/osleave now cites the live port layer (devcmd, deveia-posix, ipif6-posix); the callback case cites the incumbent macOS driver's bounded-poll shape — a wait that always returns within milliseconds cannot wedge close or kill, by construction. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq
Audited every code citation in the corpus by the FreeBSD-audio criteria (is it exercised? does it show the claimed mechanism?) and ran every previously unexecuted recipe: - ninep-server cited appl/veltro/tools/http.b as the tool-module pattern — http is not registered in TOOL_PATHS (dormant); now cites webfetch.b (registered, exercised). webfs.b demoted to a caveated aside (built but exercised by nothing); dropped from the tutorial, gpusrv stands alone as the clone exemplar. chatsrv.b kept and marked verified-serving (mounted and exercised it today). - limbo-dev listed Linux/386 among toolchain paths — dead upstream directory; now amd64|arm64, matching the build scripts. - DESIGN-PRINCIPLES implied /chan/ventisrvstats exists by default — it exists only under ventisrv -s; reworded. - gui-test's tk-snapshot section gains its real prerequisite (tkrender.dis is a test build product; mk install in tests/ first). Verified end-to-end on macOS: cmds file -> rendered PNG. The fast luciuisrv recipe and countfs's exact error text also verified live. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7bMig1XekwRPsq
AGENTS.md is the single entry point contributors point their agents at; the worked tutorial was only reachable via the documentation index. Now linked from AGENTS.md's companions list and first in the principles doc's Further Reading. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq
Reading it cold as an agent would: skills were referenced only by glob (now named individually with one-line purposes); nothing routed to the wider documentation (DOCUMENTATION-INDEX now linked); nothing said what CI checks a PR (now enumerated); and 'shell scripts should stay POSIX sh compatible' stood unqualified — actively wrong for Inferno-side scripts, the exact confusion the corpus exists to prevent, sitting in the entry file. Now split host-side vs Inferno-side with a pointer to the shell table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq
pdfinn
added a commit
that referenced
this pull request
Aug 21, 2026
…ry (#519) * docs: drop Go from the contributor-facing surface The Go-to-Dis compiler is experimental and nothing is built from it; presenting Go as a repo language invites agents to write Go for InferNode features. AGENTS.md now states application code is Limbo, never other languages; the GoDis contribution section, directory-table row, and index section are removed. The pedagogical uses stay — 'Limbo is close to Go' is orientation, not an invitation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq * docs: 9p-data-conventions examples follow the placement convention The doc predates NAMESPACE-LAYOUT.md and demonstrated every example service at /n/* — app-authored schemas that belong under /mnt by the schema-authorship rule. All 23 example paths converted, and a new 'Where to mount it' section states the principle up front (authored schema -> /mnt even when data is remote; foreign tree imported intact -> /n; the convention is security work; legacy /n/wallet and /n/git are not to be copied) with the full argument deferred to NAMESPACE-LAYOUT.md. Same inherited idiom fixed in DESIGN-PRINCIPLES' worldview example (/n/sensors -> /mnt/sensors) and USER-MANUAL's philosophy tenet (/n/web -> /mnt/web, where webfs actually lives). Index description of the conventions doc generalized. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq * docs: full-corpus placement sweep — /n vs /mnt, every occurrence classified Two agents examined every /n/ occurrence across docs/ (112 files), man/ (all sections), docs subdirs, appl/**/*.md, lib/veltro text, and root docs, against NAMESPACE-LAYOUT.md's schema-authorship rule. Fixed: man/4/web9p (13x /n/web -> /mnt/web — documents an app-authored schema; its stated source appl/cmd/web9p.b does not even exist) and appl/xenith/IDEAS.md's web9p proposal (9x). Everything else classified: live legacy paths kept accurate (/n/wallet, /n/git, /n/wikia, /n/speech — now annotated in DESIGN-PRINCIPLES and 9p-data-conventions with their migration tickets INFR-400..403), genuine imports kept (/n/local, peer roots, device trees), historical records left untouched. Also carries the re-cut of two commits orphaned by the #518 merge: the Go removal from the contributor surface and the 9p-data-conventions /mnt example conversion. Refs: INFR-400, INFR-401, INFR-402, INFR-403 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Four commits that were pushed to the #516 branch after it merged; re-cut cleanly onto master.
osenter/osleavenow cites the live port layer (devcmd.c,deveia-posix.c,ipif6-posix.c); the callback case cites the incumbentaudio-sdl3.cbounded-poll shape — a wait that always returns within milliseconds cannot wedge close or kill, by construction.http.bas the tool pattern (nowwebfetch.b);webfs.bdemoted to a caveated aside (built, exercised by nothing) and dropped from the tutorial;Linux/386removed from toolchain paths;/chan/ventisrvstatscorrectly attributed toventisrv -s. Verified live:chatsrvstill serves (citation now carries the date),tk-snapshot.shend-to-end on macOS (gaining its real prerequisite: build tests first), the fast luciuisrv recipe, and countfs's exact error text.Testing
Docs and skills only. All recipes touched were executed: tk-snapshot rendered a verified PNG; chatsrv, the luciuisrv fast recipe, and countfs's error text confirmed in live emu runs.
🤖 Generated with Claude Code
https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq