Skip to content

docs: exemplar audit + entry-point hardening - #518

Merged
pdfinn merged 4 commits into
masterfrom
docs/exemplar-audit
Aug 21, 2026
Merged

pdfinn merged 4 commits into
masterfrom
docs/exemplar-audit

Conversation

@pdfinn

@pdfinn pdfinn commented Aug 21, 2026

Copy link
Copy Markdown
Member

Summary

Four commits that were pushed to the #516 branch after it merged; re-cut cleanly onto master.

  • emu-dev cites exercised code, not the dormant FreeBSD port — three engineering reasons: the BSD audio drivers are unproven here (an exemplar is an endorsement); FreeBSD demonstrates syscall blocking, which cannot be transplanted to the callback-fed APIs (CoreAudio) where the unkillable-condvar trap actually lives; and it contradicted the skill's own incumbent rule. osenter/osleave now cites the live port layer (devcmd.c, deveia-posix.c, ipif6-posix.c); the callback case cites the incumbent audio-sdl3.c bounded-poll shape — a wait that always returns within milliseconds cannot wedge close or kill, by construction.
  • Exemplar audit — every citation in the corpus checked by the same criteria, every previously unexecuted recipe run. Fixed: ninep-server cited the unregistered http.b as the tool pattern (now webfetch.b); webfs.b demoted to a caveated aside (built, exercised by nothing) and dropped from the tutorial; Linux/386 removed from toolchain paths; /chan/ventisrvstats correctly attributed to ventisrv -s. Verified live: chatsrv still serves (citation now carries the date), tk-snapshot.sh end-to-end on macOS (gaining its real prerequisite: build tests first), the fast luciuisrv recipe, and countfs's exact error text.
  • Tutorial one hop from AGENTS.md — it was reachable only via the documentation index.
  • AGENTS.md entry-point hardening — the five skills named individually with purposes (was a bare glob); DOCUMENTATION-INDEX linked as the door to everything else; the CI checks a PR will face enumerated; and the unqualified "shell scripts should stay POSIX sh" line — actively wrong for Inferno-side scripts — split into host-side vs Inferno-side with a pointer to the shell table.

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

pdfinn and others added 4 commits August 22, 2026 03:51
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
pdfinn merged commit 56dca81 into master Aug 21, 2026
20 checks passed
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>
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