Skip to content

Guide · Agent skill

How to use the Cosmos DB NoSQL Data Modeling agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The cosmosdb-datamodeling skill turns an AI agent into a pair-programming guide for designing a database schema for Azure Cosmos DB, Microsoft's NoSQL cloud database. It is for developers starting an Azure Cosmos DB app, and for teams moving from relational databases who need help deciding what to embed and what to keep in separate containers. After working through this guide you will know what the skill does, how to install it, how to ask for it, and what to check before relying on its output.

Cosmos DB NoSQL Data Modelinggithub/awesome-copilot · MIT

Quick start

  1. 1Download the ZIP. Download the cosmosdb-datamodeling ZIP file from this page.
  2. 2Install the skill. Unzip it into ~/.claude/skills/ for all projects, or into .claude/skills/ in one project. In the Claude apps, upload it under Settings, then Capabilities, then Skills.
  3. 3Make sure the agent can write files. The agent must be able to read and write Markdown files in your working directory, because the skill saves its output there.
  4. 4Describe your application. Ask for help designing an Azure Cosmos DB NoSQL data model and give a short description of your entities and expected traffic.
  5. 5Answer the focused questions. Reply to the one to three questions per turn. Check cosmosdb_requirements.md after each update.
  6. 6Review cosmosdb_data_model.md. Read the proposed document and container design, check the partition key and embedding decisions, and test them against your own requirements before building.

What the skill makes the agent do

A skill is a folder of instructions that an AI agent loads when a task matches it. This one is defined by a single file, SKILL.md, and its purpose is to guide you through a Cosmos DB NoSQL data model design from start to finish.

The agent asks you focused questions about your application's entities, relationships, read and write patterns, request volumes and concurrency. It keeps those answers in a working file called cosmosdb_requirements.md, and then proposes a document and container design in a final file called cosmosdb_data_model.md. The design draws on common NoSQL patterns, such as whether to embed related data in one document or separate it into its own container, and how to choose a partition key.

  • cosmosdb_requirements.md: the working notes, updated as you give new information, covering the application overview, access patterns, entity relationships and design considerations.
  • cosmosdb_data_model.md: the final deliverable with the proposed data model.

Install the cosmosdb-datamodeling skill

You can install the skill in one of three places, depending on whether you want it for one project or for all of your work. Download the ZIP file from this page first.

For Claude Code, unzip the download into ~/.claude/skills/ to make it available everywhere, or into a project's .claude/skills/ folder to limit it to that project. In the Claude apps, you can instead upload the skill under Settings, then Capabilities, then Skills.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into .claude/skills/ inside your project folder
  • Claude apps: Settings → Capabilities → Skills, then upload the skill
~/.claude/skills/

Trigger the skill with a natural request

You do not need a special command. Describe what you are building and ask for help designing the database. The agent should recognise a request about Azure Cosmos DB NoSQL data modelling and begin the guided process.

Give the agent the background it will ask for anyway, such as what your app does, who uses it and roughly how many reads and writes you expect. The more concrete your first message, the fewer questions you will need to answer.

  • I'm building a checkout service on Azure Cosmos DB NoSQL. Help me design the data model.
  • We are migrating a relational order system to Cosmos DB. Should orders and order items be embedded or separate?
  • Help me choose a partition key for a multi-tenant SaaS app on Azure Cosmos DB NoSQL.

What to expect during the session

The skill is built to ask only a few questions at a time, usually one and at most three related ones. Each time you share new information, the agent updates cosmosdb_requirements.md, so you can check that it has recorded your answers correctly.

For each access pattern, the requirements file asks for requests per second at peak and on average, the attributes needed, latency and consistency needs, and design considerations. If you do not know a figure, the agent is instructed to help you estimate it from your business context. For very high write volumes, the skill asks about batching, reducing write operations and how total data size will affect cross-partition queries.

Example: deciding what to embed

Suppose your app has users and their orders. The skill's own example compares how often users are read with their recent orders against how often each is read alone. If most reads need both and an order cannot exist without its user, it may recommend one container where orders sit under the user's partition key, so no cross-partition query is needed.

If the access overlap is low, or the child data can grow without limit, it is more likely to keep the entities in separate containers. The skill treats the choice as a trade-off and records its reasoning in the requirements file so you can review it.

Safety notes and what the skill needs

This skill runs no scripts and makes no network calls. It works only from the conversation and writes Markdown files. The agent needs to be able to read and write Markdown files in your working directory.

The skill does not size costs or check your design against a live database, so treat its output as a design draft to review, not a verified production schema. You supply the application details; prior Azure Cosmos DB knowledge helps but is not required.

  • Runs scripts: no
  • Uses network: no
  • Writes files: cosmosdb_requirements.md and cosmosdb_data_model.md in the working directory

What people use it for

  • Designing the containers and partition keys for a new Azure Cosmos DB app before writing any code.
  • Deciding which data to embed in a single document and which to store in separate containers when moving from a relational database.
  • Planning a high-write workload by identifying where batching and partitioning could reduce write operations and hot partitions.
  • Recording application requirements and access patterns in a Markdown file that your team can review.

Frequently asked questions

How do I install the cosmosdb-datamodeling skill?

Download the ZIP file from this page and unzip it into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. In the Claude apps, go to Settings, then Capabilities, then Skills, and upload the skill there.

Does the skill need anything installed on my machine?

The skill runs no scripts and makes no network calls, according to its listing. It needs an AI agent that can read and write Markdown files in the working directory. Azure Cosmos DB knowledge is helpful but not required.

Is the cosmosdb-datamodeling skill free?

The skill is licensed under MIT. Check the licence on this page for the full terms before using it in your project.

Can this skill work with PostgreSQL or SQL Server?

No. The guidance is specific to Azure Cosmos DB NoSQL, and its design is not transferable as-is to SQL databases such as PostgreSQL or SQL Server.

Will the skill estimate costs or check my design against a live database?

No. The skill works only from the conversation and produces Markdown files. It does not size costs or validate a design against a live database.

Why does the agent ask so many questions, and how do I make it faster?

The process is multi-step by design, so it can be slow for simple schemas. Give a detailed first message with your entities, read and write patterns and request volumes, and answer the questions in batches. If you only need a quick answer, a simpler request may be better.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you are starting a new Azure Cosmos DB NoSQL app, or moving from a relational database and want a structured process for deciding what to embed and how to partition. Skip it for SQL databases, for quick one-off answers, or for simple schemas where the multi-step questioning will feel slow, and do not rely on it to estimate costs or validate a design against a live database.

Download the skill