Cb analytics schema
Skill celticht32/Couchbase-Skills-for-Claude.ai/skills/couchbase-analytics/cb-analytics-schema
This is a collection of skills I have created for Couchbase for Claude.ai
npx -y skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-schemaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use this skill when the user wants to inspect, discover, or document the structure of Couchbase Analytics dataverses and datasets — listing what exists, inferring document shapes, or building a data dictionary. Trigger when they mention "schema", "dataverses", "datasets", "what fields are in", "what's the structure of", "infer_schema", or "Metadata.\`Dataverse\`".
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.6 KB, as published. Nobody here has run it
Schema introspection
Three tools cover dataset discovery:
list_dataverses(cluster)— every dataverse in metadatalist_datasets(dataverse, cluster)— datasets, optionally scopedinfer_schema(dataset, sample_size, cluster)— sample N docs, summarise observed top-level fields
Inferring a useful schema
infer_schema reads up to sample_size documents (default 100) and
returns:
{
"dataset": "Default.Users",
"rows_sampled": 100,
"fields": {
"id": {"present_count": 100, "presence_pct": 100.0, "types": ["str"]},
"name": {"present_count": 100, "presence_pct": 100.0, "types": ["str"]},
"age": {"present_count": 87, "presence_pct": 87.0, "types": ["int"]},
"addresses": {"present_count": 62, "presence_pct": 62.0, "types": ["list"]}
}
}
Notes:
- The sample is unordered; don't infer cardinality or ordering from it.
- A field with
presence_pct < 100is optional in the dataset. - Multiple entries in
typesmean the dataset is heterogeneous — flag this to the user.
Safety
The dataset name is interpolated into a SQL++ FROM clause because SQL++
doesn't support parameterised identifiers. The server validates the name
with a strict regex first; you don't need to worry about escaping. Names
like Default.\my dataset`.sub` (backtick-quoted) are accepted.
Building a data dictionary
A typical workflow:
list_dataverses→ choose onelist_datasets(dataverse="X")→ enumerate datasets- For each,
infer_schema(dataset="X.Y", sample_size=500)→ table of fields - Optionally
execute_query_readonlywithSELECT VALUE COUNT(*) FROM X.Yto add a row count to each entry
What to avoid
- Don't call
infer_schemawithsample_size > 10_000— it does a full document scan and will be slow. - Don't assume the sample covers every variant of the document shape.
Treat
infer_schemaoutput as a starting point, not a contract.
Rate limits & safety
Schema tools split across two rate-limit categories:
read(60/sec):list_dataverses,list_datasets.query(10/sec):infer_schema.
infer_schema is query category — not read — because under the hood
it runs a SELECT that scans a sample of documents from the dataset.
That makes it relatively expensive and it shares the same 10/sec
bucket as every other query tool (execute_query,
execute_query_readonly, execute_query_paginated, fetch_next_page,
explain_query).
Practical implication: if you're enumerating schemas across many
datasets, you'll hit the query bucket faster than the read bucket.
Recommended pattern: one list_dataverses → one list_datasets per
dataverse (read budget) → then infer_schema calls spaced ≥ 100ms
apart (query budget).
If RateLimitExceeded comes back on an infer_schema, the bucket is
probably being shared with concurrent execute_query* calls. Honour
retry_after_sec and back off.
Related skills
cb-analytics-query— writing and running SQL++ queries against the discovered datasetscouchbase-data-modeling— document shape, field naming, and embedding decisions (server-side modeling)