Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "contentstack-skills",
"plugins": [
{
"name": "contentstack-skills",
"source": ".",
"description": "Contentstack agent skills for Claude Code, Cursor, Codex, and Gemini."
}
]
}
8 changes: 8 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "contentstack-skills",
"version": "0.1.0",
"description": "Contentstack agent skills for Claude Code, Cursor, Codex, and Gemini.",
"author": {
"name": "Contentstack"
}
}
6 changes: 6 additions & 0 deletions .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"name": "contentstack-skills",
"version": "0.1.0",
"description": "Contentstack agent skills for Claude Code, Cursor, Codex, and Gemini.",
"rules": "cursor/rules"
}
40 changes: 40 additions & 0 deletions .github/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Build generated trees

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Regenerate cursor/rules and codex
run: |
bash scripts/build-cursor-rules.sh
bash scripts/build-codex-skills.sh

- name: Fail on drift (pull_request)
if: github.event_name == 'pull_request'
run: |
if ! git diff --quiet; then
echo "Generated trees are out of date. Run the build scripts locally and commit." >&2
git diff --stat
exit 1
fi

- name: Commit drift (push to main)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: |
if ! git diff --quiet; then
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add cursor/rules codex
git commit -m "chore: regenerate cursor/rules and codex"
git push
fi
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
5 changes: 5 additions & 0 deletions .talismanrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
fileignoreconfig:
- filename: .github/workflows/secrets-scan.yml
ignore_detectors:
- filecontent
version: "1.0"
18 changes: 18 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Contentstack Skills

This repository bundles a collection of [Contentstack](https://www.contentstack.com) agent skills for use with Claude Code, Cursor, Codex, Gemini, and the `skills` CLI.

## Routing

The router lives at [skills/CLAUDE.md](skills/CLAUDE.md). Follow it to pick the right skill for a given user request.

Each skill's canonical definition is at `skills/<slug>/SKILL.md`. The `cursor/rules/` and `codex/` trees are generated artifacts — do not edit them by hand.

## Contentstack references

When a skill needs up-to-date product or API details beyond what's in `skills/<slug>/SKILL.md`, consult:

- [developers.contentstack.com](https://developers.contentstack.com) — SDKs, CLIs, API references
- [contentstack.com/docs](https://www.contentstack.com/docs) — product documentation
- [contentstack.com/academy](https://www.contentstack.com/academy) — training and learning paths
- [contentstack.com/explorer](https://www.contentstack.com/explorer) — free sandbox accounts for testing
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Contentstack

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
118 changes: 117 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,117 @@
# contentstack-agent-skills
# Contentstack Skills

A bundle of 17 ready-to-use [Contentstack](https://www.contentstack.com) agent skills for AI coding tools. Exported 2026-04-23.

## What's in here?

Each skill is a self-contained instruction set that teaches an AI coding agent how to accomplish a specific Contentstack task — querying content, migrating schemas, building scaffolds, integrating SDKs, and more. Drop this repo into your AI tool of choice and the agent will know when and how to apply each skill based on what you ask.

The same skills are packaged in four formats so you can use whichever tool fits your workflow:

- **Claude Code** — installable plugin (`.claude-plugin/`)
- **Cursor** — rule files (`cursor/rules/`)
- **Codex / OpenAI agents** — markdown tree (`codex/`)
- **Gemini CLI** — extension manifest (`gemini-extension.json`)
- **[skills](https://github.com/anthropics/skills) CLI** — pulls any single skill on demand

You only need to install one. Pick the section below that matches your tool.

## Install

### Claude Code

```
/plugin marketplace add <this-repo>
/plugin install contentstack-skills
```

After install, the router at `skills/CLAUDE.md` is loaded into context and Claude will pick the matching skill automatically when you ask a relevant question.

### Cursor

Install via Cursor's plugin marketplace, **or** copy `cursor/rules/*.mdc` into your project's `.cursor/rules/` directory. The `00-router.mdc` rule is marked `alwaysApply: true`, so Cursor always knows which skill to reach for.

### Codex / OpenAI agents

Point your agent at this repo or copy the `codex/` directory into your project. The entry point is [`codex/AGENTS.md`](codex/AGENTS.md).

### Gemini CLI

```
gemini extensions install <this-repo>
```

### skills CLI (single skill on demand)

```
npx skills add <this-repo>@<skill-slug>
```

## Skills included

| Slug | Title | Product |
|------|-------|---------|
| `cms-data-modeling-best-practices` | Contentstack Data Modeling Best Practices | CMS |
| `cms-live-preview-visual-builder-support-assistant` | Live Preview and Visual Builder Support Assistant | Developer Experience |
| `cms-entries` | Entries | CMS |
| `cms-assets` | Contentstack Assets | CMS |
| `cms-taxonomy` | Contentstack Taxonomy | CMS |
| `cms-workflows` | Workflows & Publish Rules | CMS |
| `cms-environments-publishing` | Contentstack Environments & Publishing | CMS |
| `cms-localization` | Contentstack Localization | CMS |
| `cms-branches-aliases` | Branches & Aliases | CMS |
| `cms-roles-permissions` | Roles & Permissions | CMS |
| `cms-releases` | Releases | CMS |
| `cms-tokens-authentication` | Tokens & Authentication | CMS |
| `cms-webhooks` | Contentstack Webhooks | CMS |
| `launch-sync-environment-variables-from-env-example` | Sync Launch environment variables from .env.example | Launch |
| `launch-trigger-and-monitor-launch-deployments` | Trigger and Monitor Launch Deployments | Launch |
| `cms-variants-personalization` | Variants & Personalization | CMS |
| `developer-hub-app-architect` | Developer Hub App Architect | Developer Hub |

## How it works

`skills/` is the source of truth. Every other tool-specific tree (`cursor/rules/`, `codex/`) is generated from it by the scripts in `scripts/`. A GitHub Action regenerates the derived trees on every push to `main` and fails PRs that forget to regenerate, so the copies never drift.

```
skills/<slug>/SKILL.md ──► cursor/rules/NN-<slug>.mdc
──► codex/<slug>/SKILL.md
skills/CLAUDE.md (router) ──► cursor/rules/00-router.mdc
──► codex/AGENTS.md
```

## Repository layout

```
.claude-plugin/ Claude Code plugin + marketplace manifests
.cursor-plugin/ Cursor plugin manifest
.github/workflows/ CI that regenerates cursor/rules and codex on push
codex/ Generated Codex tree — do not edit
cursor/rules/ Generated Cursor rules — do not edit
scripts/ Contributor build scripts
skills/ Source of truth — edit here
gemini-extension.json Gemini CLI extension manifest
```

## Editing skills

Edit only under `skills/`. Then regenerate the derived trees:

```
bash scripts/build-cursor-rules.sh
bash scripts/build-codex-skills.sh
```

The GitHub Action in `.github/workflows/build.yml` runs these on every push to `main` and commits any drift.

## Learn more about Contentstack

- **[contentstack.com](https://www.contentstack.com)** — product, pricing, and platform overview
- **[developers.contentstack.com](https://developers.contentstack.com)** — developer hub: SDKs, CLIs, API references, and guides
- **[contentstack.com/explorer](https://www.contentstack.com/explorer)** — start free, no credit card — try Contentstack in your browser
- **[contentstack.com/docs](https://www.contentstack.com/docs)** — full product documentation
- **[contentstack.com/academy](https://www.contentstack.com/academy)** — training, certifications, and learning paths

## License

See individual skill files for attribution. Contentstack branding and documentation belong to Contentstack.
27 changes: 27 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Security

Contentstack takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations.

If you believe you have found a security vulnerability in any Contentstack-owned repository, please report it to us as described below.

## Reporting Security Issues

**Please do not report security vulnerabilities through public GitHub issues.**

Send email to [security@contentstack.com](mailto:security@contentstack.com).

You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message.

Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:

- Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
- Full paths of source file(s) related to the manifestation of the issue
- The location of the affected source code (tag/branch/commit or direct URL)
- Any special configuration required to reproduce the issue
- Step-by-step instructions to reproduce the issue
- Proof-of-concept or exploit code (if possible)
- Impact of the issue, including how an attacker might exploit the issue

This information will help us triage your report more quickly.

[https://www.contentstack.com/trust/](https://www.contentstack.com/trust/)
23 changes: 23 additions & 0 deletions codex/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Contentstack skill router

Use the table below to route a user request to the right skill. Each row maps a typical user intent to a skill's `SKILL.md`.

| When the user asks… | Skill |
|----------------------|-------|
| Use when designing, reviewing, or refactoring Contentstack content models before creating or changing schemas. | [Contentstack Data Modeling Best Practices](./cms-data-modeling-best-practices/SKILL.md) |
| Use this skill when a user is implementing or debugging Contentstack Live Preview or Visual Builder, including blank preview panels, stale or published-only preview, lost preview context after navigation, shared SSR state, cache contamination, or edit-tag mapping failures. Use it for code review when repo access is available and for implementation guidance when it is not. | [Live Preview and Visual Builder Support Assistant](./cms-live-preview-visual-builder-support-assistant/SKILL.md) |
| Use when developers ask about fetching entries, building CDA queries, handling localization, publishing workflows, versioning behavior, bulk operations, or entry-related performance issues. | [Entries](./cms-entries/SKILL.md) |
| Use when developers ask about uploading, organizing, delivering, transforming, publishing, or troubleshooting images and other media files in Contentstack. | [Contentstack Assets](./cms-assets/SKILL.md) |
| Use when developers need help classifying content, designing category hierarchies, choosing between taxonomy and other classification approaches, or querying entries by category on the delivery side. | [Contentstack Taxonomy](./cms-taxonomy/SKILL.md) |
| Use when developers ask about workflow stage design, approval processes, publish rules, self-approval prevention, transition restrictions, or automation triggered by workflow changes. | [Workflows & Publish Rules](./cms-workflows/SKILL.md) |
| Use when developers ask about environment setup, publishing behavior, delivery or preview tokens, the Sync API, scheduling, or CDN and caching configuration in Contentstack. | [Contentstack Environments & Publishing](./cms-environments-publishing/SKILL.md) |
| Use when developers ask about languages, fallback chains, localizing entries, non-localizable fields, or multi-locale publishing. Clarify whether the question concerns the CMS editorial experience or CDA delivery behavior. | [Contentstack Localization](./cms-localization/SKILL.md) |
| Use when developers ask about branches, aliases, CI/CD integration with Contentstack, deployment strategies, or branch-specific vs global module behavior. | [Branches & Aliases](./cms-branches-aliases/SKILL.md) |
| Use when developers ask about user permissions, role design, team management, token capabilities, access control, or automation access in Contentstack. | [Roles & Permissions](./cms-roles-permissions/SKILL.md) |
| Use when developers ask about deploying multiple content changes together, campaign launches, coordinated content updates, release scheduling, or CI/CD content deployment. | [Releases](./cms-releases/SKILL.md) |
| Use when developers ask about authentication, token types, API keys, rate limits, SSO integration, or credential security. | [Tokens & Authentication](./cms-tokens-authentication/SKILL.md) |
| Use when developers need help setting up webhooks, choosing event channels, handling webhook payloads, verifying signatures, debugging delivery issues, or integrating Contentstack with external systems such as site rebuilds, search indexes, Slack, or CI/CD. | [Contentstack Webhooks](./cms-webhooks/SKILL.md) |
| Use when a Launch environment must match the keys defined in a local `.env.example` file. | [Sync Launch environment variables from .env.example](./launch-sync-environment-variables-from-env-example/SKILL.md) |
| Use when you need to automate Launch deployments for a known project and environment, monitor progress, and surface failure diagnostics. This is appropriate for CI/CD or operator workflows that need a deterministic deploy status check and log-based troubleshooting. | [Trigger and Monitor Launch Deployments](./launch-trigger-and-monitor-launch-deployments/SKILL.md) |
| Use when developers ask about content personalization, A/B testing, audience segmentation, variant creation, or integrating Personalize with the CMS. | [Variants & Personalization](./cms-variants-personalization/SKILL.md) |
| Use when a user needs help designing or building a Contentstack Developer Hub or Marketplace app. | [Developer Hub App Architect](./developer-hub-app-architect/SKILL.md) |
Loading
Loading