docs(user): add task guides — hybrid search, cluster on S3, review workflow (Phase 3b)#227
docs(user): add task guides — hybrid search, cluster on S3, review workflow (Phase 3b)#227aaltshuler wants to merge 1 commit into
Conversation
…rkflow (Phase 3b) Four new pages under docs/user/guides/, each a runnable, code-verified command sequence that composes the reference docs into a real workflow: - guides/hybrid-search.md — schema with a @embed vector + text body, load, then a query fusing bm25 and nearest with rrf. Notes that indexes are engine- maintained (no manual build step) and links embeddings.md for the provider env. - guides/cluster-on-s3.md — cluster.yaml with a storage: s3:// root, the validate→import→plan→apply flow, loading via the graph's storage URI, and config-free serving with `omnigraph-server --cluster s3://…`. - guides/review-workflow.md — load onto a branch with --from, inspect it with --branch reads / commit list, merge with --into, then delete + cleanup. - guides/index.md — the section landing page. Every command was checked against crates/omnigraph-cli/src/cli.rs (e.g. caught that `load` has no --cluster/--cluster-graph — those are storage-plane only — and used the positional storage URI instead). Wired into docs/user/index.md (new Guides section) and AGENTS.md's topic table. Verified: zero broken links; check-agents-md.sh green (61 links, 58 docs). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| `rrf` combines the two rankings without needing their score scales to match, so | ||
| you get a single fused ordering from a lexical signal and a semantic one. |
There was a problem hiding this comment.
omnigraph read is a deprecated alias — guides should use omnigraph query
The CLI renamed read to query in v0.6.0 (docs/releases/v0.6.0.md). The read spelling remains as a visible_alias but prints a one-line deprecation warning to stderr on every invocation, and the CLI reference explicitly says "New integrations should target the canonical names." A guide that is the first thing users touch should not immediately trigger a deprecation warning that suggests they're doing something wrong.
Same issue appears in review-workflow.md line 34.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
|
|
||
| ```bash | ||
| export GEMINI_API_KEY=... # ingest-time document embeddings | ||
| # For local experimentation without a provider, deterministic mock vectors: | ||
| # export OMNIGRAPH_EMBEDDINGS_MOCK=1 NANOGRAPH_EMBEDDINGS_MOCK=1 | ||
| ``` |
There was a problem hiding this comment.
Non-mock path is missing the compiler-side API key required for
nearest()
The guide configures only GEMINI_API_KEY (engine-side ingest client), but the mock comment itself discloses that two clients are active: OMNIGRAPH_EMBEDDINGS_MOCK=1 covers the engine-side and NANOGRAPH_EMBEDDINGS_MOCK=1 covers the compiler-side (query-time normalization via the NanoGraph/OpenAI client). When running against a real provider the corresponding real credentials are also needed on both sides. A user who copies just export GEMINI_API_KEY=... will succeed at load but then fail at runtime when vector_search or hybrid tries to embed $q. The fix is to add OPENAI_API_KEY=... (or OPENAI_BASE_URL / NANOGRAPH_EMBED_MODEL for a self-hosted OpenAI-compatible endpoint) to the real-credentials example, or at minimum call out the two-client requirement inline rather than deferring entirely to the embeddings reference link.
| omnigraph read --query queries.gq --name hybrid \ | ||
| --params '{"q":"trends in AI safety"}' --format table docs.omni |
There was a problem hiding this comment.
Use the canonical
omnigraph query command; omnigraph read is a deprecated alias since v0.6.0 and prints a stderr warning on every invocation.
| omnigraph read --query queries.gq --name hybrid \ | |
| --params '{"q":"trends in AI safety"}' --format table docs.omni | |
| omnigraph query --query queries.gq --name hybrid \ | |
| --params '{"q":"trends in AI safety"}' --format table docs.omni |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| omnigraph read --query checks.gq --name count_by_type \ | ||
| --branch review/2026-04-25 --format table graph.omni |
There was a problem hiding this comment.
Use the canonical
omnigraph query command; omnigraph read is a deprecated alias since v0.6.0 and prints a stderr warning on every invocation. The cookbooks and cli/reference.md both use omnigraph query.
| omnigraph read --query checks.gq --name count_by_type \ | |
| --branch review/2026-04-25 --format table graph.omni | |
| omnigraph query --query checks.gq --name count_by_type \ | |
| --branch review/2026-04-25 --format table graph.omni |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| export GEMINI_API_KEY=... # ingest-time document embeddings | ||
| # For local experimentation without a provider, deterministic mock vectors: | ||
| # export OMNIGRAPH_EMBEDDINGS_MOCK=1 NANOGRAPH_EMBEDDINGS_MOCK=1 |
There was a problem hiding this comment.
The real-credentials path should surface both API keys. The mock comment already reveals that two clients are active —
OMNIGRAPH_EMBEDDINGS_MOCK for the engine (ingest-time @embed) and NANOGRAPH_EMBEDDINGS_MOCK for the compiler (query-time text-to-vector for nearest()). Without an OpenAI-compatible key, any query that passes a string to nearest() will fail at runtime even if load succeeded.
| export GEMINI_API_KEY=... # ingest-time document embeddings | |
| # For local experimentation without a provider, deterministic mock vectors: | |
| # export OMNIGRAPH_EMBEDDINGS_MOCK=1 NANOGRAPH_EMBEDDINGS_MOCK=1 | |
| export GEMINI_API_KEY=... # engine-side: ingest-time @embed (RETRIEVAL_DOCUMENT) | |
| export OPENAI_API_KEY=... # compiler-side: query-time nearest() normalization (RETRIEVAL_QUERY) | |
| # For a self-hosted OpenAI-compatible endpoint: OPENAI_BASE_URL=... NANOGRAPH_EMBED_MODEL=... | |
| # For local experimentation without a provider, deterministic mock vectors: | |
| # export OMNIGRAPH_EMBEDDINGS_MOCK=1 NANOGRAPH_EMBEDDINGS_MOCK=1 |
Phase 3b of the docs restructure — task-oriented guides. Docs only.
Four new pages under
docs/user/guides/, each a runnable, code-verifiedcommand sequence:
hybrid-search.md— schema with an@embedvector + text body, load, thena query fusing
bm25andnearestwithrrf. Notes that indexes areengine-maintained (no manual build step).
cluster-on-s3.md—cluster.yamlwith astorage: s3://root, thevalidate→import→plan→apply flow, loading via the graph's storage URI, and
config-free serving with
omnigraph-server --cluster s3://….review-workflow.md— load onto a branch with--from, inspect with--branchreads /commit list, merge with--into, then delete + cleanup.index.md— the section landing page.Every command was checked against
crates/omnigraph-cli/src/cli.rs— e.g. caughtthat
loadhas no--cluster/--cluster-graph(those are storage-planeonly) and used the positional storage URI instead.
Wired into
docs/user/index.md(new Guides section) and AGENTS.md's topic table.Verification
.mdlinks.scripts/check-agents-md.shgreen (61 links, 58 docs).This completes the docs restructure (Phase 1 #223 · Phase 2 #225 · Phase 3a #226 ·
Phase 3b here). Remaining follow-up tracked separately: the website
import-docs.mjssubdir-aware update before the next site re-sync.🤖 Generated with Claude Code
Greptile Summary
Phase 3b of the docs restructure adds four task-oriented guide pages under
docs/user/guides/(hybrid search, S3 cluster, review workflow, index) and wires them intodocs/user/index.mdandAGENTS.md. The command sequences were verified against the CLI source, catching real issues like the absence of--clusteronload.hybrid-search.mduses deprecatedomnigraph readinstead ofomnigraph query, and the non-mock credentials section omitsOPENAI_API_KEY— the compiler-side client needs it fornearest()query-time text embedding, even though the mock path correctly shows bothOMNIGRAPH_EMBEDDINGS_MOCKandNANOGRAPH_EMBEDDINGS_MOCK.review-workflow.mdalso uses deprecatedomnigraph read; all other branch/commit/load commands match the CLI struct.cluster-on-s3.mdand the index/navigation files look correct and consistent with the existing cluster operator guide.Confidence Score: 3/5
Two of the four new guides ship runnable examples that will either emit deprecation warnings or fail outright at the query step; fix both before merging.
The
hybrid-search.mdguide has two issues that break the described workflow: usingomnigraph read(deprecated, prints warning every run) and showing onlyGEMINI_API_KEYin the non-mock path while the mock comment itself reveals that a second client and therefore a second API key is required fornearest()to work. Thereview-workflow.mdalso usesomnigraph read. These are first-party guides intended as the primary on-ramp for new users, so shipping examples that warn or fail is a meaningful problem.docs/user/guides/hybrid-search.md (deprecated command + incomplete credentials example) and docs/user/guides/review-workflow.md (deprecated command)
Important Files Changed
omnigraph readalias and omits the compiler-side OpenAI key needed for query-timenearest()in the non-mock pathomnigraph readalias instead of canonicalomnigraph query; all other commands match CLI structFlowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD subgraph hybrid["hybrid-search.md"] H1["omnigraph init --schema schema.pg docs.omni"] H2["export GEMINI_API_KEY + OPENAI_API_KEY"] H3["omnigraph load --mode overwrite docs.omni"] H4["omnigraph query --name hybrid"] H1 --> H2 --> H3 --> H4 end subgraph cluster["cluster-on-s3.md"] C1["cluster validate / import / plan / apply"] C2["omnigraph load s3://bucket/.../knowledge.omni"] C3["omnigraph-server --cluster s3://bucket/..."] C4["omnigraph optimize / cleanup --cluster X --cluster-graph Y"] C1 --> C2 --> C3 C3 --> C4 end subgraph review["review-workflow.md"] R1["omnigraph load --branch review/X --from main"] R2["omnigraph query --branch review/X"] R3["omnigraph branch merge review/X --into main"] R4["omnigraph branch delete review/X"] R1 --> R2 --> R3 --> R4 endReviews (1): Last reviewed commit: "docs(user): add task guides — hybrid sea..." | Re-trigger Greptile