docs(rfc): RFC-011 — CLI refactoring (one addressing & config model)#228
Merged
Conversation
A maintainer-internal RFC (Status: Proposed) for the post-omnigraph.yaml CLI: one ontology (store/server/cluster; cluster vs operator config; catalog; context; capability); addressing = scope + --graph with the access path *derived*; served is the default front door and direct storage is privileged (admin/break-glass); stateless per command; definitions named, payloads passed. Includes the full end-state command taxonomy (by capability), a current-state appendix, migration, invariants check, and the resolved Decisions (with two deferred). Completes the config/CLI lineage RFC-007 → RFC-008 → RFC-009 → RFC-010. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- P1: end-state taxonomy `schema apply` annotation said "Open Q10" — now points at the resolved Decision 10 (cluster graphs via cluster apply). - P1: add the `alias <name>` verb (Decision 4) to the end-state taxonomy's local section — it was claimed "full command set" but omitted. - P2: Decision 11's bulk-data-plane reference now carries the "PR #219, not yet merged" caveat (matches the Relationship section). - P2: footnote now states the `check`→`lint` argv-shim is removed (its end-state disposition was unspecified). Co-Authored-By: Claude Opus 4.8 <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.
What
Adds RFC-011 (
docs/dev/rfc-011-cli-refactoring.md, Status: Proposed) — themaintainer-internal design for the CLI once
omnigraph.yamlis removed. Docs-only.The model
catalog; context; capability — each term naming exactly one concept.
--graph, access path derived. A command resolves ascope (operator defaults, a
--context, or one explicit--store/--server/--cluster),--graphselects within it, and served-vs-direct falls out of thescope × the verb's capability (
any/served/direct/control/local) —never a per-command toggle, never inferred from a URI scheme.
server (bearer token, no bucket creds); direct remote access is an explicit,
credentialed, admin/break-glass act.
current_context); definitions named, payloadspassed (
query <name>, not--query file.gq).Contents
Ontology · first principles · scope/capability model · resolution rule · config
shape · command shape · before/after · migration · invariants check · Decisions
(Q1–Q4, Q6, Q7, Q9–Q11 resolved; Q5, Q8 deferred) · full end-state taxonomy +
a current-state appendix.
Completes the config/CLI lineage: RFC-007 → RFC-008 → RFC-009 → RFC-010.
Scope
RFC only — no code. The standalone current-state map (
cli-taxonomy.md) and theimplementation are separate follow-ups; the maintenance-as-server-jobs mechanism
(Decision 11) is its own future RFC.
Verification
scripts/check-agents-md.shgreen; all RFC links resolve.🤖 Generated with Claude Code
Greptile Summary
Adds RFC-011, the design document for the post-
omnigraph.yamlCLI refactoring: a unified addressing model (scope +--graph+ derived access path), a five-capability classifier (any/served/direct/control/local), stateless-per-command resolution, and a named-definitions-over-file-payloads convention. Thedocs/dev/index.mdentry is the only other change.--target/--cluster-graph/--uri http://…but omits a staged-removal note for the positional<URI>/--uri s3://…form used by storage-native commands (init,optimize,repair,cleanup,schema plan) — these forms appear in theAGENTS.mdquick-reference and will break without guidance.Confidence Score: 5/5
Docs-only RFC addition with no code or config changes; safe to merge.
The change is two documentation files — a new RFC and a one-line index entry — with no executable code, no schema, and no API surface touched. The two findings are documentation inconsistencies within the RFC itself, not defects that would break anything today.
docs/dev/rfc-011-cli-refactoring.md — the "four orthogonal questions" vs five-row table and the missing positional storage URI migration note are both worth fixing before the implementation PR lands.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A([Command invoked]) --> B{Verb capability = local?} B -- Yes --> Z[Reject scope/graph flags · run locally] B -- No --> C{Primitive flag supplied?\n--store / --server / --cluster} C -- Yes --> D[Use primitive as scope\nbypass operator-config defaults] C -- No --> E{--context or\nOMNIGRAPH_CONTEXT set?} E -- Yes --> F[Load named context as scope] E -- No --> G[Use operator-config flat defaults] D & F & G --> H{Verb is graph-scoped?} H -- Yes --> I{Scope is a store?} I -- Yes --> J[Store IS one graph\nreject --graph] I -- No --> K{default_graph or\n--graph provided?} K -- Yes --> L[Graph resolved] K -- No, 1 graph --> L K -- No, many graphs --> M[Error: list candidates\nnever auto-pick] H -- No, scope-scoped --> N[No graph selection] J & L & N --> O{Derive access path\nfrom scope x capability} O -- server scope + any/served --> P[Served path\nbearer token · Cedar policy] O -- cluster scope + direct/control --> Q[Direct privileged path\nbucket creds · Cedar policy] O -- store scope + any/direct --> R[Direct ad-hoc\nbucket creds if s3] O -- mismatch --> S[Error: name the required scope explicitly]Reviews (2): Last reviewed commit: "docs(rfc): RFC-011 — address Greptile re..." | Re-trigger Greptile