Skip to content

docs: b.yaml toolchain page, service-vs-target note, drop the private-repo pointer - #162

Merged
fentas merged 2 commits into
mainfrom
docs/public-pointers-b-yaml
Aug 28, 2026
Merged

docs: b.yaml toolchain page, service-vs-target note, drop the private-repo pointer#162
fentas merged 2 commits into
mainfrom
docs/public-pointers-b-yaml

Conversation

@fentas

@fentas fentas commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Night-queue C-10: public-docs debt.

1. Pointers to private material

The queue item assumed ~5 dead pointers to private docs. A full sweep found one:

Where Before After
docs/.vitepress/config.ts (srcExclude comment) "Internal/planning docs now live in the PRIVATE kubehz-cluster repo (docs/internal/)…" "Defensive net: nothing under docs/internal/ is part of this site. Keep this exclude so a stray internal/** file can never ship to the public site by accident."

Sweep evidence (all clean, no changes needed):

  • No docs/internal, kubehz-cluster, or private kernpilot/* repo references in any .md under docs/, README.md, or the top-level markdown files.
  • All 8 github.com/kernpilot/lok8s/tree|blob links resolve to paths that exist in the repo; the only other org repo linked (kubehz-agent) is public.
  • All relative and site-absolute internal doc links resolve; external links were HEAD-checked (the only non-2xx hits are API endpoints, RFC-5737 examples, and GitHub subpages that block anonymous curl).

2. New guide page: The Toolchain (.bin/b.yaml)

docs/guide/toolchain.md, registered in the sidebar (Introduction, after Concepts) and cross-linked from Getting Started. Covers:

  • what b is (github.com/fentas/b) and what it owns in a lok8s project (binaries + framework file sync),
  • the binaries fields lok8s actually uses — version, alias, asset, file, onPost (with the B_* hook env vars), and the groups tag with an explicit note that it is a lok8s convention, not a b field,
  • the five env-sync profiles and how the JMESPath select ships a filtered b.yaml per profile,
  • how b install / b update / b version --check / b verify fit the lo workflow.

Every field was verified against the live .bin/b.yaml and the b source/docs (pkg/binary/types.go, docs/env-sync.mdx). Nothing undocumented-in-b was invented.

3. Service name vs target name

docs/guide/services.md gains a warning admonition right after the what/how paragraph: service names (services.yaml keys → image lok8s.local/<service> + lok8s.dev/name label, used by Tilt) and target names (clusters/<domain>/targets/ directories, used by the domain kustomization and lo build) are distinct namespaces; lo deploy -l selects by label value, not by target directory.

Verification

  • vitepress build docs passes in the branch (dead-link check included).
  • The #plane-b-—-workloads-targets anchor was verified against the rendered HTML (VitePress keeps the em dash in the slug).
  • ste-lint deltas on touched pages: services.md 2.42 → 2.39, index.md 2.67 → 2.63 per 100 words (no regression); new page 0.80.

🤖 Generated with Claude Code

https://claude.ai/code/session_016DJzGS3pNBzZs1jaEQ74Co

…-repo pointer

Three pieces of public-docs debt:

- New guide page "The Toolchain (.bin/b.yaml)": what b is, the b.yaml
  fields lok8s actually uses (alias, asset, file, onPost, version, and
  the groups tag convention), the five env-sync profiles with their
  select filtering, and how b install / b update fit the lo workflow.
  Registered in the VitePress sidebar and cross-linked from Getting
  Started.
- services.md: admonition that service names (services.yaml keys, image
  + lok8s.dev/name label) and target names (clusters/<domain>/targets/
  directories) are distinct namespaces, and which commands take which.
- config.ts: the srcExclude comment no longer points readers at a
  private repo; it now states the defensive intent only.

Verified against the real .bin/b.yaml and the b source/docs
(github.com/fentas/b); vitepress build docs passes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016DJzGS3pNBzZs1jaEQ74Co

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the public documentation site to reduce “public-docs debt” by adding a dedicated Toolchain guide for .bin/b.yaml, clarifying the distinction between service names and target names, and removing a lingering pointer to private/internal material in the VitePress config comments.

Changes:

  • Add a new guide page documenting how b and .bin/b.yaml work in a lok8s project, and link it from the sidebar and Getting Started.
  • Add a warning callout in the Services guide explaining service-name vs target-name namespaces and label-based selection.
  • Update the VitePress config comment to remove mention of a private repo while keeping srcExclude as a safety net.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
docs/guide/toolchain.md New Toolchain guide page explaining b, .bin/b.yaml, and profile filtering behavior.
docs/guide/services.md Adds a warning admonition clarifying service-name vs target-name behavior and lo deploy -l label selection.
docs/guide/index.md Cross-links Getting Started text to the new Toolchain page.
docs/.vitepress/config.ts Removes private-repo mention from a comment and adds the new Toolchain page to the Guide sidebar.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/guide/services.md
Comment on lines +38 to +39
except the labels you put on the target's manifests. `lo deploy -l
lok8s.dev/name=<x>` selects by **label value**, not by target directory.
Comment thread docs/guide/toolchain.md
Comment on lines +43 to +45
so teammates and CI get the identical toolchain. The
`curl -fsSL https://get.lok8s.io | sh` bootstrap from
[Getting Started](/guide/#installation) runs these same commands for you.
Comment thread docs/guide/toolchain.md Outdated

| Profile | Includes | Adds |
|---|---|---|
| `core` | — | `.lok8s/**`, `.envrc`, skills, and the `core`-tagged binaries |
…b version, complete the profile rows

The review checked the page against b's own source and caught a wrong
claim: PATH_BIN/PATH_BASE are returned verbatim by GetBinaryPath, and
only the git-root and cwd fallbacks append .bin. A public schema doc
that is wrong is worse than no doc.

Added the version anchor for the silent-failure mode: b ignores unknown
keys, so a field name from another version installs the binary with
default behavior and reports nothing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016DJzGS3pNBzZs1jaEQ74Co
@fentas
fentas merged commit b19393c into main Aug 28, 2026
8 checks passed
@fentas
fentas deleted the docs/public-pointers-b-yaml branch August 28, 2026 07:44
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.

2 participants