docs: the CLI had no page, and a domain's completeness rule had no home - #239
Merged
Merged
Conversation
Audited every subject the add-a-domain skill cites against the corpus. 25 of 30 had a home. Five did not, and four of those were the same hole: there was no page for the CLI at all, while the provider, the agent, domains, the SDK, the UI, exec, audit, permissions, the transport and the job system each have one. cli.md states what the layer is: a shell over the SDK that parses flags, calls one method and renders, holding no logic the SDK does not. One command per endpoint in a file named after the path it serves. Identifiers as required flags rather than positional arguments. Two flags declared once and inherited, --json on the root and --target on client node. JSON returning the response's raw bytes before anything is formatted, so a new field reaches script consumers without a command changing. Four shared renderers rather than per-command formatting. One error handler, called by all 120 commands that can fail. The fifth was the cross-layer rule, that a domain is a provider, a processor, a spec, a handler, an SDK service, commands, docs and permission tables, and missing one of those is a bug rather than a smaller domain. That is a rule about building a domain, so it goes in domains.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c
|
Thank you for contributing to this project! 😊🕹️ |
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.
You asked me to audit whether anything else was missing from the corpus. It was.
The audit
Every subject the
add-a-domainskill cites, checked againstcomponents/. 25 of 30 had a home. Five did not, and four were the same hole.There was no page for the CLI at all. The provider, the agent, domains, the SDK, the UI, exec, audit, permissions, the transport and the job system each have one. The CLI is 156 files and had nothing.
cli.md
Written from
cmd/client_*.goandinternal/cli/, with the counts measured:--jsonon the root,--targetonclient nodedefaulting to_all. Nothing per-domain redeclares them, which is why their meaning cannot drift between domains--jsonprints the response's raw bytes and returns before anything is formatted, so a field added to a response reaches script consumers without a command changingBuildBroadcastTableso a one-host and a forty-host answer render through the same pathThe fifth gap
A domain is a provider, a processor and its registration, a spec and generated code, a handler and route, an SDK service, commands, docs and permission tables. Missing one is not a smaller domain, it is one that works until somebody reaches it the way the missing layer would have. That is a rule about building a domain, so it is in
domains.mdwith the grep that checks it.Still queued
The 58 dead
FR-pointers in the skill. Every subject now has somewhere to point, which was the blocker.Also worth knowing: #238 merged with more than its description said. The two sections for what a provider does not touch and what its tests owe were in the working tree when I switched branches and
commit -aswept them in. They are correct and on main; the squash title on main is the pre-reframing one.just testpasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c