Skip to content

Every program has a generated reference, and the build generates it - #905

Merged
David-Noble-at-work merged 2 commits into
developfrom
fix/787-cli-reference
Sep 21, 2026
Merged

David-Noble-at-work merged 2 commits into
developfrom
fix/787-cli-reference

Conversation

@David-Noble-at-work

@David-Noble-at-work David-Noble-at-work commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Lane 16 of #887 — the last; the command line epic closes
with it.

  • Star's root is importable — cmd/star/star (package star, NewRootCmd) beside cmd/writ/writ and
    cmd/lore/lore; main.go keeps main and run. The extension host that held that name takes the name its
    types say, cmd/star/extension (Loader, Registry, Application, Command, Extension); the bundled
    extensions' embed is its own package, bundled.FS. Ruled 2026-09-21.
  • The reference covers the four programs
    (#787) — devlore-docs walks writ, lore, star
    (extensions included) and devlore-test; a test names the four and asserts star's tree carries an extension
    command's page.
  • The build generates it — make build runs the generator after the tools, so a checkout that built has a
    current docs/cli/; docs stays the standalone target docs-publish.yaml calls. §12 says so.

Test plan

  • make check green; make test-scenario green
  • Coverage, complexity and size re-measured; figures in the plan
  • darwin: make build leaves docs/cli/{writ,lore,star,devlore-test}; installed star --help matches its page
  • danoble-ud24-1.local (linux/arm64), snapshotted first: self install; repo unset/set by URL and by path,
    git-named clones; deploy common noblefactor-ops 166 files under stop and under replace; upgrade 0
  • danoble-wd11-3.local (windows/arm64), snapshotted first: the same repo steps; deploy under --allow-dirty
    (that machine's personal checkout is dirty): stop refuses one occupant, replace deploys 66 links; upgrade 0

Time

Marker UTC Elapsed
opened (first commit) 2026-09-21T18:25:57Z —
submitted (PR opened) 2026-09-21T18:26:03Z 0 h after opened
merged 2026-09-21T19:33:40Z 1.1 h after submitted; 1.1 h in all

Computed by the algorithm of noblefactor-ops#188 at merge.

https://claude.ai/code/session_01SqQVFZz7AdiLZkGoAcUqRW

devlore-docs walked writ and lore; star and devlore-test, in scope for the
convention since #743 and #776, had no reference. Star's root lived in package
main, which nothing can import, so the generator could not build its tree the
way it builds the others.

Star's root is now an importable package, cmd/star/star, with NewRootCmd like
writ's and lore's: the key and docs commands, the install hooks and the Starlark
command registration move there, and main keeps main and run. The package that
was cmd/star/star -- the extension host: Loader, Registry, Application, Command,
Extension -- takes the name its types say, cmd/star/extension; every importer
had been aliasing it starruntime for want of one. The embed of the bundled
extensions becomes its own package beside the .star trees, bundled.FS, since an
embed can only name paths under its package's directory.

devlore-docs walks the four roots, star's with its extensions, and a test names
the four so a fifth or a dropped one fails there rather than on the site. make
build runs the generator after the tools, ruled 2026-09-21: a checkout that
built has a current docs/cli. Section 12 of the specification says so.

Closes #787
@David-Noble-at-work David-Noble-at-work self-assigned this Sep 21, 2026
TestRun_EveryProgramHasATree asserted docs/cli/star/gh/issues/report.md, which
exists where noblefactor-ops is deployed -- star's root loads the machine's
deployed extensions beside the bundled ones -- and nowhere in CI. lint go is
compiled into the binary, so its page is the proof that the tree carries the
extensions.
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